FEM: Add gmsh transfinite tests and example

This commit is contained in:
Stefan Tröger
2025-11-19 15:45:40 +01:00
parent 9d5167de90
commit cc670e4fd0
26 changed files with 2729 additions and 7 deletions
+23
View File
@@ -111,6 +111,7 @@ SET(FemExamples_SRCS
femexamples/thermomech_bimetal.py
femexamples/truss_3d_cs_circle_ele_seg2.py
femexamples/truss_3d_cs_circle_ele_seg3.py
femexamples/gmsh_transfinite_manual.py
)
@@ -383,6 +384,7 @@ SET(FemTestsApp_SRCS
femtest/app/test_solver_elmer.py
femtest/app/test_solver_mystran.py
femtest/app/test_solver_z88.py
femtest/app/test_gmsh.py
)
SET(FemTestsFiles_SRCS
@@ -457,6 +459,26 @@ SET(FemTestsMesh_SRCS
femtest/data/mesh/tetra10_mesh.z88
)
SET(FemTestsGMESH_SRCS
femtest/data/gmsh/Hexagon_4_Sided_Surface_Recombined.vtk
femtest/data/gmsh/Hexagon_4_Sided_Non_symmetric_Surface_Recombined.vtk
femtest/data/gmsh/Hexagon_3_Sided_Surface_Recombined.vtk
femtest/data/gmsh/Hexagon_3_Sided_Non_symmetric_Surface_Recombined.vtk
femtest/data/gmsh/Triangle_Surface_Recombined_Unequal_Oriented.vtk
femtest/data/gmsh/Triangle_Surface_Recombined_Unequal_Guided.vtk
femtest/data/gmsh/Quad_Surface_Recombined_Bumped.vtk
femtest/data/gmsh/Quad_Surface_Recombined.vtk
femtest/data/gmsh/Quad_Surface.vtk
femtest/data/gmsh/Quad_3D_Curved_Surface_Recombined_Guided.vtk
femtest/data/gmsh/Quad_Curved_Surface_Recombined_Guided.vtk
femtest/data/gmsh/Quad_Distorted_Surface_Recombined_Guided.vtk
femtest/data/gmsh/Triangle_Surface_Recombined_Orientated.vtk
femtest/data/gmsh/Triangle_Surface_Recombined_Bumped.vtk
femtest/data/gmsh/Triangle_Surface_Recombined.vtk
femtest/data/gmsh/Triangle_Surface.vtk
)
SET(FemTestsMystran_SRCS
femtest/data/mystran/__init__.py
femtest/data/mystran/ccx_cantilever_ele_quad4.bdf
@@ -560,6 +582,7 @@ SET(FemAllScripts
${FemTestsCcx_SRCS}
${FemTestsElmer_SRCS}
${FemTestsMesh_SRCS}
${FemTestsGMESH_SRCS}
${FemTestsMystran_SRCS}
${FemTestsOpen_SRCS}
${FemTestsZ88Main_SRCS}
+2
View File
@@ -37,6 +37,7 @@ from femtest.app.test_result import TestResult as FemTest10
from femtest.app.test_ccxtools import TestCcxTools as FemTest11
from femtest.app.test_solver_elmer import TestSolverElmer as FemTest13
from femtest.app.test_solver_z88 import TestSolverZ88 as FemTest14
from femtest.app.test_gmsh import TestGMSHTransfinite as FemTest15
# dummy usage to get flake8 and lgtm quiet
False if FemTest01.__name__ else True
@@ -52,3 +53,4 @@ False if FemTest10.__name__ else True
False if FemTest11.__name__ else True
False if FemTest13.__name__ else True
False if FemTest14.__name__ else True
False if FemTest15.__name__ else True
+35
View File
@@ -79,6 +79,7 @@ class FemExamples(QtGui.QWidget):
solvers = set()
equations = set()
materials = set()
meshgeneration = set()
for f in files:
module = import_module("femexamples." + f)
@@ -86,6 +87,16 @@ class FemExamples(QtGui.QWidget):
info = getattr(module, "get_information")()
files_info[f] = info
self.files_name[info["name"]] = f
if "meshgeneration" in info:
# mesh generation example
meshgeneration.add(info["meshgeneration"])
# there may be no analysis
if ("hasanalysis" in info) and not info["hasanalysis"]:
continue
# analysis example
meshtypes.add(info["meshtype"])
mesheles.add(info["meshelement"])
file_equations = info["equations"]
@@ -105,6 +116,7 @@ class FemExamples(QtGui.QWidget):
solvers = sorted(solvers)
equations = sorted(equations)
materials = sorted(materials)
meshgeneration = sorted(meshgeneration)
all_examples = QtGui.QTreeWidgetItem(self.view, ["All"])
for example, info in files_info.items():
@@ -115,6 +127,8 @@ class FemExamples(QtGui.QWidget):
for constraint in constraints:
constraint_item = QtGui.QTreeWidgetItem(all_constraints, [constraint])
for example, info in files_info.items():
if not "constraints" in info:
continue
file_constraints = info["constraints"]
if constraint in file_constraints:
QtGui.QTreeWidgetItem(constraint_item, [info["name"]])
@@ -124,6 +138,8 @@ class FemExamples(QtGui.QWidget):
for equation in equations:
equation_item = QtGui.QTreeWidgetItem(all_equations, [equation])
for example, info in files_info.items():
if not "equations" in info:
continue
file_equations = info["equations"]
if equation in file_equations:
QtGui.QTreeWidgetItem(equation_item, [info["name"]])
@@ -133,6 +149,8 @@ class FemExamples(QtGui.QWidget):
for material in materials:
material_item = QtGui.QTreeWidgetItem(all_materials, [material])
for example, info in files_info.items():
if not "material" in info:
continue
if info["material"] == material:
QtGui.QTreeWidgetItem(material_item, [info["name"]])
self.view.addTopLevelItem(all_materials)
@@ -141,6 +159,8 @@ class FemExamples(QtGui.QWidget):
for mesh in meshtypes:
mesh_item = QtGui.QTreeWidgetItem(all_meshtypes, [mesh])
for example, info in files_info.items():
if not "meshtype" in info:
continue
if info["meshtype"] == mesh:
QtGui.QTreeWidgetItem(mesh_item, [info["name"]])
self.view.addTopLevelItem(all_meshtypes)
@@ -149,6 +169,8 @@ class FemExamples(QtGui.QWidget):
for mesh in mesheles:
mesh_item = QtGui.QTreeWidgetItem(all_mesheles, [mesh])
for example, info in files_info.items():
if not "meshelement" in info:
continue
if info["meshelement"] == mesh:
QtGui.QTreeWidgetItem(mesh_item, [info["name"]])
self.view.addTopLevelItem(all_mesheles)
@@ -157,11 +179,24 @@ class FemExamples(QtGui.QWidget):
for solver in solvers:
solver_item = QtGui.QTreeWidgetItem(all_solvers, [solver])
for example, info in files_info.items():
if not "solvers" in info:
continue
file_solvers = info["solvers"]
if solver in file_solvers:
QtGui.QTreeWidgetItem(solver_item, [info["name"]])
self.view.addTopLevelItem(all_solvers)
all_meshgenerations = QtGui.QTreeWidgetItem(self.view, ["Mesh generation"])
for generator in meshgeneration:
generator_item = QtGui.QTreeWidgetItem(all_meshgenerations, [generator])
for example, info in files_info.items():
if not "meshgeneration" in info:
continue
file_generators = info["meshgeneration"]
if generator in file_generators:
QtGui.QTreeWidgetItem(generator_item, [info["name"]])
self.view.addTopLevelItem(all_meshgenerations)
self.view.setHeaderHidden(True)
self.view.itemClicked.connect(self.enable_buttons)
self.view.itemDoubleClicked.connect(self.double_clicked)
@@ -0,0 +1,408 @@
# ***************************************************************************
# * Copyright (c) 2025 Stefan Tröger <stefantroeger@gmx.net> *
# * *
# * This file is part of the FreeCAD CAx development system. *
# * *
# * This program is free software; you can redistribute it and/or modify *
# * it under the terms of the GNU Lesser General Public License (LGPL) *
# * as published by the Free Software Foundation; either version 2 of *
# * the License, or (at your option) any later version. *
# * for detail see the LICENCE text file. *
# * *
# * This program 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 Library General Public License for more details. *
# * *
# * You should have received a copy of the GNU Library General Public *
# * License along with this program; if not, write to the Free Software *
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
# * USA *
# * *
# ***************************************************************************
__title__ = "GMSH transfinite meshing examples"
__author__ = "Stefan Tröger"
__url__ = "https://www.freecad.org"
# **************************************************************************
#
# Important: The generated file is used for gmsh tests. Do not change
# content (geometry, options, names etc.) or add/remove content without
# regenerating the gmsh test data files
#
# **************************************************************************
import math
import FreeCAD
import Part
import ObjectsFem
from .manager import init_doc
def get_information():
return {
"name": "GMSH manual transfinite meshing",
"meshgeneration": "Transfinite",
"hasanalysis": False
}
def get_explanation(header=""):
return (
header
+ """
To run the example from Python console use:
from femexamples.gmsh_transfinite import setup
setup()
Shows many ways how the transfinite gmsh options can be used to create structured meshes.
"""
)
def create_example(doc, name, description):
# setup of a full example document structure
# returns the part and gmsh mesh object
group = doc.addObject("App::DocumentObjectGroup", name)
part_obj = group.newObject("Part::Feature", "Geometry")
mesh_obj = ObjectsFem.makeMeshGmsh(doc, "Mesh")
mesh_obj.Shape = part_obj
mesh_obj.CharacteristicLengthMax = 2
group.addObject(mesh_obj)
explanation = group.newObject("App::TextDocument","Explanation")
explanation.Text = description
if FreeCAD.GuiUp:
mesh_obj.ViewObject.BackfaceCulling = False
return part_obj, mesh_obj
def setup(doc=None, solver=None):
# init FreeCAD document
if doc is None:
doc = init_doc()
triangle = Part.makePolygon([FreeCAD.Vector(0,0,0),
FreeCAD.Vector(10,0,0),
FreeCAD.Vector(5,8,0),
FreeCAD.Vector(0,0,0)])
# 1: simple 3 sided face with tf surface
explanation = ("A 3 sided furface can be made transfinite. For this the two guiding "
"edges need to have the same amount of nodes on them.\n\n"
" - The guiding edges of a triangle are Edge1 and Edge3 by default\n"
" - In this example the number of nodes on those edges is equal, as they "
"are the same length and we use CharachteristicLengthMax setting to subdivide")
part_obj, mesh_obj = create_example(doc, "Triangle Surface", explanation)
part_obj.Shape = Part.makeFace(triangle)
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1"])]
# 2: simple 3 sided face with tf surface and quad mesh
explanation = ("The transfinite surface of the left example can be created with quad element "
"instead of triangles by using the Recombine option")
part_obj, mesh_obj = create_example(doc, "Triangle Surface Recombined", explanation)
part_obj.Shape = Part.makeFace(triangle).translate(FreeCAD.Vector(15,0,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1"])]
tf_surf.Recombine = True
# 3: simple 3 sided face with tf surface, quad mesh and transfinite curve guiding
explanation = ("All edges of the transfinite surface can have arbitrary node distribution, and "
"we can manipulate them for example with transfinite curves\n\n"
" - The requirement of same amount of nodes for Edge1 and Edge3 still holds. "
"This is why we applied the same transfinite curve to those 2\n"
" - The two guiding edges can have different transfinite curve settings, as long "
"as the node count is the same\n"
" - It is also possible to add a transfinite curve to the non guiding surface "
"Edge2, this can have any number of nodes")
part_obj, mesh_obj = create_example(doc, "Triangle Surface Recombined Bumped", explanation)
part_obj.Shape = Part.makeFace(triangle).translate(FreeCAD.Vector(30,0,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1"])]
tf_surf.Recombine = True
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge1", "Edge3"])]
tf_curv.Distribution = "Bump"
tf_curv.Coefficient = 5
# 4: simple 3 sided face with tf surface, quad mesh but with changed orientation
explanation = ("Sometimes the default orientation of the transfinite meshing is not wanted, and "
"we want to use different guide edges. This can be achieved with specifying the "
"vertex order manual in the transfinite surface\n\n"
" - The order of selection is important: The vertex which connects both guide faces "
"needs to be the first one in the list\n"
" - You always need to add all 3 vertexes\n"
" - This only works for a single surface, when specifying vertexes you cannot use "
"multiple surfaces in that object. But you can ad more transfinite surface objects "
"gmsh, each having a single face with vertexes")
part_obj, mesh_obj = create_example(doc, "Triangle Surface Recombined Orientated", explanation)
part_obj.Shape = Part.makeFace(triangle).translate(FreeCAD.Vector(45,0,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1", "Vertex3", "Vertex2", "Vertex1"])]
tf_surf.Recombine = True
smalltriangle = Part.makePolygon([FreeCAD.Vector(0,0,0),
FreeCAD.Vector(10,0,0),
FreeCAD.Vector(5,5,0),
FreeCAD.Vector(0,0,0)])
# 5: simple 3 sided face with tf surface, made to work with transfinite curves
explanation = ("If the guiding edges do not have the same amount of nodes by default we need to ensure "
"this manually. In this example we have chosen to use transfinite curves to ensure both "
"edges have the same amount of nodes")
part_obj, mesh_obj = create_example(doc, "Triangle Surface Recombined Unequal Guided", explanation)
part_obj.Shape = Part.makeFace(smalltriangle).translate(FreeCAD.Vector(60,0,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1"])]
tf_surf.Recombine = True
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge1", "Edge3"])]
# 6: simple 3 sided face with tf surface, made to work with changed orientation
explanation = ("To overcome the unequal amount of nodes in this example we chose different guiding edges, "
"choosing the two edges which have equal length and hence equal node count")
part_obj, mesh_obj = create_example(doc, "Triangle Surface Recombined Unequal Oriented", explanation)
part_obj.Shape = Part.makeFace(smalltriangle).translate(FreeCAD.Vector(75,0,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1", "Vertex3", "Vertex2", "Vertex1"])]
tf_surf.Recombine = True
quad = Part.makePolygon([FreeCAD.Vector(0,0,0),
FreeCAD.Vector(10,0,0),
FreeCAD.Vector(10,10,0),
FreeCAD.Vector(0,10,0),
FreeCAD.Vector(0,0,0)])
# 7: simple 4 sided face with tf surface
explanation = ("A 4 sided furface can be made transfinite. For this the opposite edges need to have "
"the same amount of nodes on them.\n\n"
" - For 4 sided faces the edge order does not matter, only the ones opposite to each are relevant\n"
" - In this example the number of nodes on those edges is equal, as they have the same length "
"and we use CharachteristicLengthMax setting to subdivide")
part_obj, mesh_obj = create_example(doc, "Quad Surface", explanation)
part_obj.Shape = Part.makeFace(quad).translate(FreeCAD.Vector(0,-15,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1"])]
# 8: simple 4 sided face with tf surface and quad mesh
explanation = ("The transfinite surface of the left example can be created with quad elements "
"instead of triangles by using the Recombine option")
part_obj, mesh_obj = create_example(doc, "Quad Surface Recombined", explanation)
part_obj.Shape = Part.makeFace(quad).translate(FreeCAD.Vector(15,-15,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1"])]
tf_surf.Recombine = True
# 9: simple 4 sided face with tf surface, quad mesh and transfinite curve guiding
explanation = ("All edges of the transfinite surface can have arbitrary node distribution, and "
"we can manipulate them for example with transfinite curves\n\n"
" - The requirement of same amount of nodes for opposite edges still holds. "
"This is why we applied the same transfinite curve to the opposite edges\n"
" - The opposite edges can have different transfinite curve settings, as long "
"as the node count is the same\n"
" - It is also possible to only add a transfinite curve to some edges. no matter "
"which or how many")
part_obj, mesh_obj = create_example(doc, "Quad Surface Recombined Bumped", explanation)
part_obj.Shape = Part.makeFace(quad).translate(FreeCAD.Vector(30,-15,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1"])]
tf_surf.Recombine = True
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge1", "Edge3"])]
tf_curv.Distribution = "Bump"
tf_curv.Coefficient = 5
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge2", "Edge4"])]
tf_curv.Distribution = "Bump"
tf_curv.Coefficient = 5
tf_curv.Invert = True
# 10: distorded 4 sided face with tf surface, quad mesh and transfinite curve guiding
distorted_quad = Part.makePolygon([FreeCAD.Vector(0,0,0),
FreeCAD.Vector(10,3,0),
FreeCAD.Vector(7,10,0),
FreeCAD.Vector(3,5,0),
FreeCAD.Vector(0,0,0)])
explanation = ("If the edges of the face are not equal length we need to ensure that the node counts"
"are correct. The simplest way is to make all 4 edges transfinite.")
part_obj, mesh_obj = create_example(doc, "Quad Distorted Surface Recombined Guided", explanation)
part_obj.Shape = Part.makeFace(distorted_quad).translate(FreeCAD.Vector(45,-15,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1"])]
tf_surf.Recombine = True
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge1", "Edge2", "Edge3", "Edge4"])]
# 11: Unregular 4 sided face with tf surface, quad mesh and transfinite curve guiding
bSpline1 = Part.BSplineCurve()
bSpline1.interpolate([FreeCAD.Vector(0,0,0), FreeCAD.Vector(3.3,0.5,0),
FreeCAD.Vector(6.6,-0.5,0), FreeCAD.Vector(10,0,0)])
bSpline2 = Part.BSplineCurve()
bSpline2.interpolate([FreeCAD.Vector(10,0,0), FreeCAD.Vector(10.5,3.3,0),
FreeCAD.Vector(9.5,6.6,0), FreeCAD.Vector(10,10,0)])
bSpline3 = Part.BSplineCurve()
bSpline3.interpolate([FreeCAD.Vector(10,10,0), FreeCAD.Vector(6.6,10.5,0),
FreeCAD.Vector(3.3,9.5,0), FreeCAD.Vector(0,10,0)])
bSpline4 = Part.BSplineCurve()
bSpline4.interpolate([FreeCAD.Vector(0,10,0), FreeCAD.Vector(-0.5,7,0), FreeCAD.Vector(0.5,5,0),
FreeCAD.Vector(-0.5,3,0), FreeCAD.Vector(0,0,0)])
wire = Part.Wire([Part.Edge(bSpline1), Part.Edge(bSpline2), Part.Edge(bSpline3), Part.Edge(bSpline4)])
face = Part.Face(wire)
explanation = ("The edges of the 4 sided face can be any type, and also be hevaily curved. This holds also "
"for triangles, by the way.")
part_obj, mesh_obj = create_example(doc, "Quad Curved Surface Recombined Guided", explanation)
part_obj.Shape = face.translate(FreeCAD.Vector(60,-15,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1"])]
tf_surf.Recombine = True
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge1", "Edge2", "Edge3", "Edge4"])]
# 12: Unregular 3D 4 sided face with tf surface, quad mesh and transfinite curve guiding
bSpline1 = Part.BSplineCurve()
bSpline1.interpolate([FreeCAD.Vector(0,0,0), FreeCAD.Vector(3.3,1,1),
FreeCAD.Vector(6.6,-1,-1), FreeCAD.Vector(10,0,1)])
bSpline2 = Part.BSplineCurve()
bSpline2.interpolate([FreeCAD.Vector(10,0,1), FreeCAD.Vector(10,3.3,0),
FreeCAD.Vector(10,6.6,2), FreeCAD.Vector(10,10,1)])
bSpline3 = Part.BSplineCurve()
bSpline3.interpolate([FreeCAD.Vector(10,10,1), FreeCAD.Vector(6.6,11,-1),
FreeCAD.Vector(3.3,9,1), FreeCAD.Vector(0,10,0)])
bSpline4 = Part.BSplineCurve()
bSpline4.interpolate([FreeCAD.Vector(0,10,0), FreeCAD.Vector(-1,7,-1), FreeCAD.Vector(1,5,1),
FreeCAD.Vector(-1,3,-1), FreeCAD.Vector(0,0,0)])
wire = Part.Wire([Part.Edge(bSpline1), Part.Edge(bSpline2), Part.Edge(bSpline3), Part.Edge(bSpline4)])
face = Part.makeFilledFace(wire)
explanation = ("An of course this works for 3D cuved faces as well")
part_obj, mesh_obj = create_example(doc, "Quad 3D Curved Surface Recombined Guided", explanation)
part_obj.Shape = face.translate(FreeCAD.Vector(75,-15,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.References = [(part_obj, ["Face1"])]
tf_surf.Recombine = True
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge1", "Edge2", "Edge3", "Edge4"])]
# 13: Hexagon face with 3-sided tf surface
points = []
for i in range(6):
angle = i * 2 * math.pi / 6
x = 5*math.cos(angle)
y = 5*math.sin(angle)
points.append(FreeCAD.Vector(x, y, 0))
points.append(points[0]) # to close wire
hexagon = Part.makePolygon(points)
explanation = ("It is possible to create transfinite surface meshes for faces with arbitrary amount of edges. "
"However, for this we need to specify what the corner points are, to guide the transfinite algorithm "
"This is done by providing the relevant vertexes in the reference section of transfinite surfaces\n\n"
" - There can be 3 or 4 corner points, making the face to a 3 or 4 sided transfinite surface. "
"This example uses 3.\n"
" - The amount of nodes between the corner points need to be equal for the guiding surface. This "
"is the same as for normal 3 sided faces, just now one side is created of multiple edges, for which "
"the nodes are added up."
" - In the example each edge has the same length, hence nodes. As each side of the transfinite surfce "
"consists of 2 edges, the overall node count is the same per side")
part_obj, mesh_obj = create_example(doc, "Hexagon 3-Sided Surface Recombined", explanation)
part_obj.Shape = Part.makeFace(hexagon).translate(FreeCAD.Vector(5,-25,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.Recombine = True
tf_surf.References = [(part_obj, ["Face1", "Vertex1", "Vertex3", "Vertex5"])]
# 13: Hexagon face with 4-sided tf surface
explanation = ("The hexagon can also be turned into a 4 sided transfinite surface. For 4 sided transfinite "
"surfaces the opposite sides need to have the same amount of nodes. Therefore we group the 6 edges "
"in a way to have either 2 edges on opposite side or 1 edge.\n\n"
)
part_obj, mesh_obj = create_example(doc, "Hexagon 4-Sided Surface Recombined", explanation)
part_obj.Shape = Part.makeFace(hexagon).translate(FreeCAD.Vector(20,-25,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.Recombine = True
tf_surf.References = [(part_obj, ["Face1", "Vertex2", "Vertex3", "Vertex5", "Vertex6"])]
# 14: Hexagon face with 3-sided uneven distributed tf surface
explanation = ("The 6 edges of the hexagon can also be distributed unevenly into 3 sides of the transfinite surface. "
"We then need to ensure the same node count for the guiding surfaces. This is done with transfinite curves\n\n"
" - The node count of a transfinit curve describes the number of nodes per selected edge. The edge nodes"
"include the ones for starting and ending vertex\n"
" - If two transfinite edges that share a vertex, this vertex is doubled and one node is dropped.\n"
" - Therefore, the total node count of N connected edges is (N x Node - N). This needs to be considerd "
"when setting the transfinite curve node number\n"
" - For our example: Side 1: 13 Nodes/Edge per edge (1*13-1=12), Side 2: 5 Nodes/Edge (3*5-3=12), Side 3: 7 Nodes/Edge (2*7-2=12) "
)
part_obj, mesh_obj = create_example(doc, "Hexagon 3-Sided Non-symmetric Surface Recombined", explanation)
part_obj.Shape = Part.makeFace(hexagon).translate(FreeCAD.Vector(35,-25,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.Recombine = True
tf_surf.References = [(part_obj, ["Face1", "Vertex1", "Vertex2", "Vertex5"])]
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge1"])]
tf_curv.Nodes = 13
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge2", "Edge3", "Edge4"])]
tf_curv.Nodes = 5
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge5", "Edge6"])]
tf_curv.Nodes = 7
# 15: Hexagon face with 4-sided uneven distributed tf surface
explanation = ("The 6 edges hexagon can also be used as 4 sided transfinite surface, as shown in this example")
part_obj, mesh_obj = create_example(doc, "Hexagon 4-Sided Non-symmetric Surface Recombined", explanation)
part_obj.Shape = Part.makeFace(hexagon).translate(FreeCAD.Vector(50,-25,0))
tf_surf = ObjectsFem.makeMeshTransfiniteSurface(doc, mesh_obj)
tf_surf.Recombine = True
tf_surf.References = [(part_obj, ["Face1", "Vertex1", "Vertex4", "Vertex5", "Vertex6"])]
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge1", "Edge2", "Edge3"])]
tf_curv.Nodes = 5
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge5"])]
tf_curv.Nodes = 13
tf_curv = ObjectsFem.makeMeshTransfiniteCurve(doc, mesh_obj)
tf_curv.References = [(part_obj, ["Edge4", "Edge6"])]
tf_curv.Nodes = 6
return doc
+67 -1
View File
@@ -127,12 +127,72 @@ def setup_all():
run_example("thermomech_bimetal")
def run_mesh_generation(doc, base_name, filepath=""):
from os.path import join, exists
from os import makedirs
from tempfile import gettempdir as gettmp
# recompute
doc.recompute()
# print(doc.Objects)
# print([obj.Name for obj in doc.Objects])
# filepath
if filepath == "":
filepath = join(gettmp(), "FEM_examples")
if not exists(filepath):
makedirs(filepath)
# find all mesh generation objects
from femtools.femutils import is_derived_from
gmsh_generators = []
netgen_generators = []
for m in doc.Objects:
if is_derived_from(m, "Fem::FemMeshGmsh"):
gmsh_generators.append(m)
elif is_derived_from(m, "Fem::FemMeshNetgen"):
netgen_generators.append(m)
if not gmsh_generators and not netgen_generators:
# no meshes to generate
return
# a file name is needed for the besides dir to work
save_fc_file = join(filepath, (base_name + ".FCStd"))
FreeCAD.Console.PrintMessage(f"Save FreeCAD file for {base_name} analysis to {save_fc_file}\n.")
doc.saveAs(save_fc_file)
# run generations
from femmesh import gmshtools, netgentools
for gmsh in gmsh_generators:
tool = gmshtools.GmshTools(gmsh)
tool.create_mesh()
# make geometry invisible, and mesh visible, like in the other examples
gmsh.ViewObject.Visibility=True
gmsh.Shape.ViewObject.Visibility=False
for netgen in netgen_generators:
tool = netgentools.NetgenTools(netgen)
tool.compute()
# save doc once again with results
doc.save()
def run_analysis(doc, base_name, filepath="", run_solver=False, blocking=True):
from os.path import join, exists
from os import makedirs
from tempfile import gettempdir as gettmp
# computable?
if not hasattr(doc, "Analysis"):
return
# recompute
doc.recompute()
@@ -149,11 +209,15 @@ def run_analysis(doc, base_name, filepath="", run_solver=False, blocking=True):
# thus ATM only one solver per analysis is supported
from femtools.femutils import is_derived_from
solver = None
for m in doc.Analysis.Group:
if is_derived_from(m, "Fem::FemSolverObjectPython"):
solver = m
break
if not solver:
return
# a file name is needed for the besides dir to work
save_fc_file = join(filepath, (base_name + ".FCStd"))
FreeCAD.Console.PrintMessage(f"Save FreeCAD file for {base_name} analysis to {save_fc_file}\n.")
@@ -192,7 +256,9 @@ def run_example(example, solver=None, base_name=None, run_solver=False, blocking
base_name = example
if solver is not None:
base_name += "_" + solver
run_analysis(doc, base_name, run_solver=run_solver, blocking=blocking)
run_mesh_generation(doc, base_name)
run_analysis(doc, base_name, run_solver=run_solver), blocking=blocking
doc.recompute()
return doc
-1
View File
@@ -988,7 +988,6 @@ class GmshTools(ObjectTools):
):
self.outputCompoundWarning()
print("setup transfinite edge map")
edge_map = tft.setup_transfinite_edge_map(self.part_obj.Shape, transfinite_curve_list)
# the settings are only created at the very end, when we know if surface and volume atomation added
# addiotional transfinite curves
-2
View File
@@ -322,9 +322,7 @@ def setup_transfinite_edge_map(shape, tf_curve_objs):
data = TFCurveDefinition.from_tfcurve_obj(tf)
print("handle refs")
for ref in _get_reference_elements(shape, tf):
print("ref element: ", ref)
ref_shape = shape.getElement(ref)
if ref_shape.ShapeType != "Edge":
continue
@@ -90,9 +90,9 @@ class _TaskPanel(base_femtaskpanel._BaseTaskPanel):
ui.Recombine.setChecked(self.obj.Recombine)
ui.Recombine.toggled.connect(self.recombineChanged)
ui.Orientation.addItems(self.obj.getEnumerationsOfProperty("TriangleOrientation"))
ui.Orientation.setCurrentIndex(ui.Orientation.findData(self.obj.TriangleOrientation))
idx = self.obj.getEnumerationsOfProperty("TriangleOrientation").index(self.obj.TriangleOrientation)
ui.Orientation.setCurrentIndex(idx)
ui.Orientation.currentIndexChanged.connect(self.orientationChanged)
ui.Orientation.setDisabled(self.obj.Recombine)
@@ -99,7 +99,8 @@ class _TaskPanel(base_femtaskpanel._BaseTaskPanel):
ui.Recombine.toggled.connect(self.recombineChanged)
ui.Orientation.addItems(self.obj.getEnumerationsOfProperty("TriangleOrientation"))
ui.Orientation.setCurrentIndex(ui.Orientation.findData(self.obj.TriangleOrientation))
idx = self.obj.getEnumerationsOfProperty("TriangleOrientation").index(self.obj.TriangleOrientation)
ui.Orientation.setCurrentIndex(idx)
ui.Orientation.currentIndexChanged.connect(self.orientationChanged)
ui.Orientation.setDisabled(self.obj.Recombine)
+200
View File
@@ -0,0 +1,200 @@
# ***************************************************************************
# * Copyright (c) 2025 Stefan Tröger <stefantroeger@gmx.net> *
# * *
# * This file is part of the FreeCAD CAx development system. *
# * *
# * This program is free software; you can redistribute it and/or modify *
# * it under the terms of the GNU Lesser General Public License (LGPL) *
# * as published by the Free Software Foundation; either version 2 of *
# * the License, or (at your option) any later version. *
# * for detail see the LICENCE text file. *
# * *
# * This program 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 Library General Public License for more details. *
# * *
# * You should have received a copy of the GNU Library General Public *
# * License along with this program; if not, write to the Free Software *
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
# * USA *
# * *
# ***************************************************************************
__title__ = "GMSH FEM unit tests"
__author__ = "Stefan Tröger"
__url__ = "https://www.freecad.org"
import unittest
import importlib
from os.path import join
import FreeCAD
import Fem
from femtools.femutils import is_derived_from
from femmesh import gmshtools
from . import support_utils as testtools
from .support_utils import fcc_print
def generate_gmesh_samples_from_example_doc(doc, datapath):
# used to process a example file into vtk mesh files and store it in datapath
# this is intended as manual step to generate the correct meshes to witch the tests
# later compare. Run this only if you want to recreate the golden test meshes which
# are added into the source code
# Note: Run this from the source folder!
# collect all gmsh objects
gmsh = []
for obj in doc.Objects:
if is_derived_from(obj, "Fem::FemMeshGmsh"):
gmsh.append(obj)
# process all gmsh objects
for mesh in gmsh:
# 1. Run gmsh to create the mesh
tool = gmshtools.GmshTools(mesh)
tool.create_mesh()
# 2. Derive file name from group name and build path
filename = mesh.getParentGroup().Label + ".vtk"
path = join(datapath, filename)
# 2. store the mesh in the correct folder
mesh.FemMesh.write(path)
class TestGMSHBase(unittest.TestCase):
# ********************************************************************************************
def tearDown(self):
# tearDown is executed after every test
if hasattr(self, "doc"):
FreeCAD.closeDocument(self.doc.Name)
# ********************************************************************************************
def load_example_file(self, name):
# opens a example file to process for testing
module = importlib.import_module(f"femexamples.{name}")
self.doc = module.setup()
def get_gmsh_objects(self):
result = []
for obj in self.doc.Objects:
if is_derived_from(obj, "Fem::FemMeshGmsh"):
result.append(obj)
return result
def execute_gmsh(self, obj):
tool = gmshtools.GmshTools(obj)
tool.create_mesh()
# ********************************************************************************************
def compare_mesh_to_sample(self, mesh_obj):
# load the sample mesh we want to compare to
name = mesh_obj.getParentGroup().Label
path = join(testtools.get_fem_test_home_dir(), "gmsh", name+".vtk")
sample = Fem.FemMesh()
sample.read(path)
# test reading the test mesh
mesh = mesh_obj.FemMesh
self.assertEqual(
mesh.NodeCount,
sample.NodeCount,
"Generated mesh does not have the same Node count as the golden sample."
)
self.assertEqual(
mesh.EdgeCount,
sample.EdgeCount,
"Generated mesh does not have the same edge count as the golden sample."
)
self.assertEqual(
mesh.TriangleCount,
sample.TriangleCount,
"Generated mesh does not have the same triangle count as the golden sample."
)
self.assertEqual(
mesh.QuadrangleCount,
sample.QuadrangleCount,
"Generated mesh does not have the same quadrangle count as the golden sample."
)
self.assertEqual(
mesh.PolygonCount,
sample.PolygonCount,
"Generated mesh does not have the same polygon count as the golden sample."
)
self.assertEqual(
mesh.VolumeCount,
sample.VolumeCount,
"Generated mesh does not have the same volume count as the golden sample."
)
self.assertEqual(
mesh.TetraCount,
sample.TetraCount,
"Generated mesh does not have the same tetrahedra count as the golden sample."
)
self.assertEqual(
mesh.HexaCount,
sample.HexaCount,
"Generated mesh does not have the same hexahedra count as the golden sample."
)
self.assertEqual(
mesh.PyramidCount,
sample.PyramidCount,
"Generated mesh does not have the same pyramid count as the golden sample."
)
self.assertEqual(
mesh.PrismCount,
sample.PrismCount,
"Generated mesh does not have the same prism count as the golden sample."
)
self.assertEqual(
mesh.PolyhedronCount,
sample.PolyhedronCount,
"Generated mesh does not have the same polyhedra count as the golden sample."
)
# ************************************************************************************************
# ************************************************************************************************
class TestGMSHTransfinite(TestGMSHBase):
fcc_print("import TestGMSHTransfinite")
# ********************************************************************************************
def test_00print(self):
# since method name starts with 00 this will be run first
# this test just prints a line with stars
fcc_print(
"\n{0}\n{1} run FEM TestGMSHTransfinite manual tests {2}\n{0}".format(
100 * "*", 10 * "*", 56 * "*"
)
)
# ********************************************************************************************
def test_manual(self):
self.load_example_file("gmsh_transfinite_manual")
gmshs = self.get_gmsh_objects()
for gmsh in gmshs:
self.execute_gmsh(gmsh)
self.compare_mesh_to_sample(gmsh)
@@ -0,0 +1,287 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 157 float
40 -25 0 37.5 -20.6699 0 32.5 -20.6699 0
30 -25 0 32.5 -29.3301 0 37.5 -29.3301 0
39.7917 -24.6392 0 39.5833 -24.2783 0 39.375 -23.9175 0
39.1667 -23.5566 0 38.9583 -23.1958 0 38.75 -22.8349 0
38.5417 -22.4741 0 38.3333 -22.1132 0 38.125 -21.7524 0
37.9167 -21.3916 0 37.7083 -21.0307 0 36.25 -20.6699 0
35 -20.6699 0 33.75 -20.6699 0 31.875 -21.7524 0
31.25 -22.8349 0 30.625 -23.9175 0 30.625 -26.0825 0
31.25 -27.1651 0 31.875 -28.2476 0 33.3333 -29.3301 0
34.1667 -29.3301 0 35 -29.3301 0 35.8333 -29.3301 0
36.6667 -29.3301 0 37.9167 -28.6084 0 38.3333 -27.8868 0
38.75 -27.1651 0 39.1667 -26.4434 0 39.5833 -25.7217 0
39.5139 -25.6014 0 39.4444 -25.4811 0 39.375 -25.3608 0
39.3056 -25.2406 0 39.3403 -25.1203 0 39.375 -25 0
39.4097 -24.8797 0 39.4444 -24.7594 0 39.5312 -24.7294 0
39.6181 -24.6993 0 39.7049 -24.6692 0 39.0278 -26.2028 0
38.8889 -25.9622 0 38.75 -25.7217 0 38.6111 -25.4811 0
38.6806 -25.2406 0 38.75 -25 0 38.8194 -24.7594 0
38.8889 -24.5189 0 39.0625 -24.4587 0 39.2361 -24.3986 0
39.4097 -24.3385 0 38.5417 -26.8042 0 38.3333 -26.4434 0
38.125 -26.0825 0 37.9167 -25.7217 0 38.0208 -25.3608 0
38.125 -25 0 38.2292 -24.6392 0 38.3333 -24.2783 0
38.5938 -24.1881 0 38.8542 -24.0979 0 39.1146 -24.0077 0
38.0556 -27.4056 0 37.7778 -26.9245 0 37.5 -26.4434 0
37.2222 -25.9622 0 37.3611 -25.4811 0 37.5 -25 0
37.6389 -24.5189 0 37.7778 -24.0378 0 38.125 -23.9175 0
38.4722 -23.7972 0 38.8194 -23.6769 0 37.5694 -28.007 0
37.2222 -27.4056 0 36.875 -26.8042 0 36.5278 -26.2028 0
36.7014 -25.6014 0 36.875 -25 0 37.0486 -24.3986 0
37.2222 -23.7972 0 37.6562 -23.6468 0 38.0903 -23.4965 0
38.5243 -23.3461 0 37.0833 -28.6084 0 36.6667 -27.8868 0
36.25 -27.1651 0 35.8333 -26.4434 0 36.0417 -25.7217 0
36.25 -25 0 36.4583 -24.2783 0 36.6667 -23.5566 0
37.1875 -23.3762 0 37.7083 -23.1958 0 38.2292 -23.0154 0
36.2153 -28.5483 0 35.7639 -27.7665 0 35.3125 -26.9846 0
34.8611 -26.2028 0 35.1389 -25.421 0 35.4167 -24.6392 0
35.6944 -23.8573 0 35.9722 -23.0755 0 36.6146 -22.9251 0
37.2569 -22.7748 0 37.8993 -22.6244 0 35.3472 -28.4882 0
34.8611 -27.6462 0 34.375 -26.8042 0 33.8889 -25.9622 0
34.2361 -25.1203 0 34.5833 -24.2783 0 34.9306 -23.4363 0
35.2778 -22.5944 0 36.0417 -22.4741 0 36.8056 -22.3538 0
37.5694 -22.2335 0 34.4792 -28.428 0 33.9583 -27.5259 0
33.4375 -26.6238 0 32.9167 -25.7217 0 33.3333 -24.8196 0
33.75 -23.9175 0 34.1667 -23.0154 0 34.5833 -22.1132 0
35.4688 -22.023 0 36.3542 -21.9328 0 37.2396 -21.8426 0
33.6111 -28.3679 0 33.0556 -27.4056 0 32.5 -26.4434 0
31.9444 -25.4811 0 32.4306 -24.5189 0 32.9167 -23.5566 0
33.4028 -22.5944 0 33.8889 -21.6321 0 34.8958 -21.572 0
35.9028 -21.5118 0 36.9097 -21.4517 0 32.7431 -28.3077 0
32.1528 -27.2853 0 31.5625 -26.263 0 30.9722 -25.2406 0
31.5278 -24.2182 0 32.0833 -23.1958 0 32.6389 -22.1734 0
33.1944 -21.151 0 34.3229 -21.1209 0 35.4514 -21.0909 0
36.5799 -21.0608 0
CELLS 145 564
OFFSETS vtktypeint64
0 3 6 9 12 15 18 21 24
27 30 33 36 40 44 48 52 56
60 64 68 72 76 80 84 88 92
96 100 104 108 112 116 120 124 128
132 136 140 144 148 152 156 160 164
168 172 176 180 184 188 192 196 200
204 208 212 216 220 224 228 232 236
240 244 248 252 256 260 264 268 272
276 280 284 288 292 296 300 304 308
312 316 320 324 328 332 336 340 344
348 352 356 360 364 368 372 376 380
384 388 392 396 400 404 408 412 416
420 424 428 432 436 440 444 448 452
456 460 464 468 472 476 480 484 488
492 496 500 504 508 512 516 520 524
528 532 536 540 544 548 552 556 560
564
CONNECTIVITY vtktypeint64
0 36 35 0 37 36 0 38 37
0 39 38 0 40 39 0 41 40
0 42 41 0 43 42 0 44 43
0 45 44 0 46 45 0 6 46
35 36 47 34 36 37 48 47 37
38 49 48 38 39 50 49 39 40
51 50 40 41 52 51 41 42 53
52 42 43 54 53 43 44 55 54
44 45 56 55 45 46 57 56 46
6 7 57 34 47 58 33 47 48
59 58 48 49 60 59 49 50 61
60 50 51 62 61 51 52 63 62
52 53 64 63 53 54 65 64 54
55 66 65 55 56 67 66 56 57
68 67 57 7 8 68 33 58 69
32 58 59 70 69 59 60 71 70
60 61 72 71 61 62 73 72 62
63 74 73 63 64 75 74 64 65
76 75 65 66 77 76 66 67 78
77 67 68 79 78 68 8 9 79
32 69 80 31 69 70 81 80 70
71 82 81 71 72 83 82 72 73
84 83 73 74 85 84 74 75 86
85 75 76 87 86 76 77 88 87
77 78 89 88 78 79 90 89 79
9 10 90 31 80 91 5 80 81
92 91 81 82 93 92 82 83 94
93 83 84 95 94 84 85 96 95
85 86 97 96 86 87 98 97 87
88 99 98 88 89 100 99 89 90
101 100 90 10 11 101 5 91 102
30 91 92 103 102 92 93 104 103
93 94 105 104 94 95 106 105 95
96 107 106 96 97 108 107 97 98
109 108 98 99 110 109 99 100 111
110 100 101 112 111 101 11 12 112
30 102 113 29 102 103 114 113 103
104 115 114 104 105 116 115 105 106
117 116 106 107 118 117 107 108 119
118 108 109 120 119 109 110 121 120
110 111 122 121 111 112 123 122 112
12 13 123 29 113 124 28 113 114
125 124 114 115 126 125 115 116 127
126 116 117 128 127 117 118 129 128
118 119 130 129 119 120 131 130 120
121 132 131 121 122 133 132 122 123
134 133 123 13 14 134 28 124 135
27 124 125 136 135 125 126 137 136
126 127 138 137 127 128 139 138 128
129 140 139 129 130 141 140 130 131
142 141 131 132 143 142 132 133 144
143 133 134 145 144 134 14 15 145
27 135 146 26 135 136 147 146 136
137 148 147 137 138 149 148 138 139
150 149 139 140 151 150 140 141 152
151 141 142 153 152 142 143 154 153
143 144 155 154 144 145 156 155 145
15 16 156 26 146 25 4 146 147
24 25 147 148 23 24 148 149 3
23 149 150 22 3 150 151 21 22
151 152 20 21 152 153 2 20 153
154 19 2 154 155 18 19 155 156
17 18 156 16 1 17
CELL_TYPES 144
5
5
5
5
5
5
5
5
5
5
5
5
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,135 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 73 float
10 -25 0 7.5 -20.6699 0 2.5 -20.6699 0
0 -25 0 2.5 -29.3301 0 7.5 -29.3301 0
9.375 -23.9175 0 8.75 -22.8349 0 8.125 -21.7524 0
6.25 -20.6699 0 5 -20.6699 0 3.75 -20.6699 0
1.875 -21.7524 0 1.25 -22.8349 0 0.625 -23.9175 0
0.625 -26.0825 0 1.25 -27.1651 0 1.875 -28.2476 0
3.75 -29.3301 0 5 -29.3301 0 6.25 -29.3301 0
8.125 -28.2476 0 8.75 -27.1651 0 9.375 -26.0825 0
9.29688 -25.8119 0 9.21875 -25.5413 0 9.14062 -25.2706 0
9.0625 -25 0 9.14062 -24.7294 0 9.21875 -24.4587 0
9.29688 -24.1881 0 8.59375 -26.6238 0 8.4375 -26.0825 0
8.28125 -25.5413 0 8.125 -25 0 8.28125 -24.4587 0
8.4375 -23.9175 0 8.59375 -23.3762 0 7.89062 -27.4357 0
7.65625 -26.6238 0 7.42188 -25.8119 0 7.1875 -25 0
7.42188 -24.1881 0 7.65625 -23.3762 0 7.89062 -22.5643 0
7.1875 -28.2476 0 6.875 -27.1651 0 6.5625 -26.0825 0
6.25 -25 0 6.5625 -23.9175 0 6.875 -22.8349 0
7.1875 -21.7524 0 5.85938 -28.2476 0 5.46875 -27.1651 0
5.07812 -26.0825 0 4.6875 -25 0 5.07812 -23.9175 0
5.46875 -22.8349 0 5.85938 -21.7524 0 4.53125 -28.2476 0
4.0625 -27.1651 0 3.59375 -26.0825 0 3.125 -25 0
3.59375 -23.9175 0 4.0625 -22.8349 0 4.53125 -21.7524 0
3.20312 -28.2476 0 2.65625 -27.1651 0 2.10938 -26.0825 0
1.5625 -25 0 2.10938 -23.9175 0 2.65625 -22.8349 0
3.20312 -21.7524 0
CELLS 65 248
OFFSETS vtktypeint64
0 3 6 9 12 15 18 21 24
28 32 36 40 44 48 52 56 60
64 68 72 76 80 84 88 92 96
100 104 108 112 116 120 124 128 132
136 140 144 148 152 156 160 164 168
172 176 180 184 188 192 196 200 204
208 212 216 220 224 228 232 236 240
244 248
CONNECTIVITY vtktypeint64
0 24 23 0 25 24 0 26 25
0 27 26 0 28 27 0 29 28
0 30 29 0 6 30 23 24 31
22 24 25 32 31 25 26 33 32
26 27 34 33 27 28 35 34 28
29 36 35 29 30 37 36 30 6
7 37 22 31 38 21 31 32 39
38 32 33 40 39 33 34 41 40
34 35 42 41 35 36 43 42 36
37 44 43 37 7 8 44 21 38
45 5 38 39 46 45 39 40 47
46 40 41 48 47 41 42 49 48
42 43 50 49 43 44 51 50 44
8 1 51 5 45 52 20 45 46
53 52 46 47 54 53 47 48 55
54 48 49 56 55 49 50 57 56
50 51 58 57 51 1 9 58 20
52 59 19 52 53 60 59 53 54
61 60 54 55 62 61 55 56 63
62 56 57 64 63 57 58 65 64
58 9 10 65 19 59 66 18 59
60 67 66 60 61 68 67 61 62
69 68 62 63 70 69 63 64 71
70 64 65 72 71 65 10 11 72
18 66 17 4 66 67 16 17 67
68 15 16 68 69 3 15 69 70
14 3 70 71 13 14 71 72 12
13 72 11 2 12
CELL_TYPES 64
5
5
5
5
5
5
5
5
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,131 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 78 float
55 -25 0 52.5 -20.6699 0 47.5 -20.6699 0
45 -25 0 47.5 -29.3301 0 52.5 -29.3301 0
54.375 -23.9175 0 53.75 -22.8349 0 53.125 -21.7524 0
51.25 -20.6699 0 50 -20.6699 0 48.75 -20.6699 0
46.875 -21.7524 0 46.25 -22.8349 0 45.625 -23.9175 0
45.5 -25.866 0 46 -26.732 0 46.5 -27.5981 0
47 -28.4641 0 47.9167 -29.3301 0 48.3333 -29.3301 0
48.75 -29.3301 0 49.1667 -29.3301 0 49.5833 -29.3301 0
50 -29.3301 0 50.4167 -29.3301 0 50.8333 -29.3301 0
51.25 -29.3301 0 51.6667 -29.3301 0 52.0833 -29.3301 0
53 -28.4641 0 53.5 -27.5981 0 54 -26.732 0
54.5 -25.866 0 47.4583 -28.2476 0 47 -27.1651 0
46.5417 -26.0825 0 46.0833 -25 0 47.9167 -28.0311 0
47.5 -26.732 0 47.0833 -25.433 0 46.6667 -24.134 0
48.375 -27.8146 0 48 -26.299 0 47.625 -24.7835 0
47.25 -23.268 0 48.8333 -27.5981 0 48.5 -25.866 0
48.1667 -24.134 0 47.8333 -22.4019 0 49.4167 -27.5981 0
49.25 -25.866 0 49.0833 -24.134 0 48.9167 -22.4019 0
50 -27.5981 0 50 -25.866 0 50 -24.134 0
50 -22.4019 0 50.5833 -27.5981 0 50.75 -25.866 0
50.9167 -24.134 0 51.0833 -22.4019 0 51.1667 -27.5981 0
51.5 -25.866 0 51.8333 -24.134 0 52.1667 -22.4019 0
51.625 -27.8146 0 52 -26.299 0 52.375 -24.7835 0
52.75 -23.268 0 52.0833 -28.0311 0 52.5 -26.732 0
52.9167 -25.433 0 53.3333 -24.134 0 52.5417 -28.2476 0
53 -27.1651 0 53.4583 -26.0825 0 53.9167 -25 0
CELLS 61 240
OFFSETS vtktypeint64
0 4 8 12 16 20 24 28 32
36 40 44 48 52 56 60 64 68
72 76 80 84 88 92 96 100 104
108 112 116 120 124 128 132 136 140
144 148 152 156 160 164 168 172 176
180 184 188 192 196 200 204 208 212
216 220 224 228 232 236 240
CONNECTIVITY vtktypeint64
4 19 34 18 18 34 35 17 17
35 36 16 16 36 37 15 15 37
14 3 19 20 38 34 34 38 39
35 35 39 40 36 36 40 41 37
37 41 13 14 20 21 42 38 38
42 43 39 39 43 44 40 40 44
45 41 41 45 12 13 21 22 46
42 42 46 47 43 43 47 48 44
44 48 49 45 45 49 2 12 22
23 50 46 46 50 51 47 47 51
52 48 48 52 53 49 49 53 11
2 23 24 54 50 50 54 55 51
51 55 56 52 52 56 57 53 53
57 10 11 24 25 58 54 54 58
59 55 55 59 60 56 56 60 61
57 57 61 9 10 25 26 62 58
58 62 63 59 59 63 64 60 60
64 65 61 61 65 1 9 26 27
66 62 62 66 67 63 63 67 68
64 64 68 69 65 65 69 8 1
27 28 70 66 66 70 71 67 67
71 72 68 68 72 73 69 69 73
7 8 28 29 74 70 70 74 75
71 71 75 76 72 72 76 77 73
73 77 6 7 29 5 30 74 74
30 31 75 75 31 32 76 76 32
33 77 77 33 0 6
CELL_TYPES 60
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,77 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 45 float
25 -25 0 22.5 -20.6699 0 17.5 -20.6699 0
15 -25 0 17.5 -29.3301 0 22.5 -29.3301 0
24.375 -23.9175 0 23.75 -22.8349 0 23.125 -21.7524 0
21.25 -20.6699 0 20 -20.6699 0 18.75 -20.6699 0
16.875 -21.7524 0 16.25 -22.8349 0 15.625 -23.9175 0
15.625 -26.0825 0 16.25 -27.1651 0 16.875 -28.2476 0
18.75 -29.3301 0 20 -29.3301 0 21.25 -29.3301 0
23.125 -28.2476 0 23.75 -27.1651 0 24.375 -26.0825 0
21.5625 -28.2476 0 20 -28.2476 0 18.4375 -28.2476 0
21.875 -27.1651 0 20 -27.1651 0 18.125 -27.1651 0
22.1875 -26.0825 0 20 -26.0825 0 17.8125 -26.0825 0
22.5 -25 0 20 -25 0 17.5 -25 0
22.1875 -23.9175 0 20 -23.9175 0 17.8125 -23.9175 0
21.875 -22.8349 0 20 -22.8349 0 18.125 -22.8349 0
21.5625 -21.7524 0 20 -21.7524 0 18.4375 -21.7524 0
CELLS 33 128
OFFSETS vtktypeint64
0 4 8 12 16 20 24 28 32
36 40 44 48 52 56 60 64 68
72 76 80 84 88 92 96 100 104
108 112 116 120 124 128
CONNECTIVITY vtktypeint64
5 21 24 20 20 24 25 19 19
25 26 18 18 26 17 4 21 22
27 24 24 27 28 25 25 28 29
26 26 29 16 17 22 23 30 27
27 30 31 28 28 31 32 29 29
32 15 16 23 0 33 30 30 33
34 31 31 34 35 32 32 35 3
15 0 6 36 33 33 36 37 34
34 37 38 35 35 38 14 3 6
7 39 36 36 39 40 37 37 40
41 38 38 41 13 14 7 8 42
39 39 42 43 40 40 43 44 41
41 44 12 13 8 1 9 42 42
9 10 43 43 10 11 44 44 11
2 12
CELL_TYPES 32
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,172 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 100 float
75 -15 0 85 -15 1 85 -5 1
75 -5 0 75.9489 -14.254 0.788231 77.2395 -13.8351 1.20494
78.5898 -14.1162 0.869899 79.6857 -14.7568 0.183512 80.7105 -15.4763 -0.537935
81.8767 -16.1174 -1.08277 83.2502 -16.2243 -0.894466 84.2655 -15.7049 -0.0239175
85 -14.0426 0.172527 85 -12.8513 -0.223221 85 -11.6199 0.0339904
85 -10.5208 0.665726 85 -9.47694 1.38796 85 -8.37336 2.01137
85 -7.13814 2.24764 85 -5.95258 1.83333 84.2655 -4.29509 -0.0239175
83.2502 -3.77569 -0.894466 81.8767 -3.88258 -1.08277 80.7105 -4.52369 -0.537935
79.6857 -5.24323 0.183512 78.5898 -5.88375 0.869899 77.2395 -6.16486 1.20494
75.9489 -5.74602 0.788231 74.0508 -5.99468 -0.949194 73.7137 -7.48386 -1.2863
74.5899 -8.57378 -0.410105 75.6227 -9.39249 0.622704 75.6227 -10.6075 0.622704
74.5899 -11.4262 -0.410105 73.7137 -12.5161 -1.2863 74.0508 -14.0053 -0.949194
75.0645 -13.434 0.10362 74.759 -12.1417 -0.204146 75.5475 -11.2049 0.54013
76.4933 -10.5258 1.35387 76.5035 -9.47373 1.37195 75.5788 -8.79423 0.572358
74.7984 -7.85694 -0.166385 75.0914 -6.56522 0.126423 76.3751 -13.115 1.04584
76.072 -11.9475 0.941812 76.7926 -11.0899 1.44451 77.7081 -10.4758 1.70887
77.7267 -9.52363 1.75673 76.854 -8.9086 1.51264 76.149 -8.0501 1.02524
76.4254 -6.88381 1.11085 77.7474 -13.336 1.2239 77.4302 -12.1396 1.42339
78.1048 -11.2028 1.55248 78.9641 -10.4934 1.4237 78.9853 -9.50579 1.53567
78.1903 -8.79496 1.69273 77.5446 -7.8568 1.55302 77.8269 -6.66232 1.29562
78.9171 -13.8343 0.747847 78.6083 -12.5308 1.11881 79.1961 -11.4331 1.10944
79.9374 -10.5456 0.949577 79.9545 -9.45337 1.16676 79.2885 -8.5639 1.42974
78.7491 -7.46448 1.36605 79.0224 -6.16349 0.850188 80.0609 -14.3936 -0.0353436
79.7804 -12.9657 0.386878 80.2505 -11.6892 0.42478 80.8395 -10.6054 0.440583
80.844 -9.39332 0.81462 80.3204 -8.30709 1.10313 79.9137 -7.0285 0.956896
80.1661 -5.60372 0.253642 81.4023 -14.8923 -0.98481 81.176 -13.357 -0.669359
81.5074 -11.9196 -0.453748 81.9183 -10.6577 -0.10307 81.8969 -9.34081 0.508506
81.5053 -8.07592 0.88068 81.2265 -6.636 0.676986 81.4464 -5.10446 -0.141403
82.9984 -14.9788 -1.50966 82.8634 -13.4522 -1.53186 83.0549 -11.9753 -1.10946
83.2848 -10.6586 -0.382442 83.2368 -9.33964 0.468206 82.956 -8.01947 1.0238
82.7627 -6.53965 0.995046 82.9239 -5.01748 0.230579 84.1718 -14.5822 -0.942085
84.1206 -13.2029 -1.25042 84.202 -11.8278 -0.821779 84.2968 -10.5988 -0.0179482
84.2623 -9.39932 0.831696 84.1152 -8.16632 1.45913 84.0083 -6.78786 1.62244
84.0879 -5.41355 1.04016
CELLS 82 324
OFFSETS vtktypeint64
0 4 8 12 16 20 24 28 32
36 40 44 48 52 56 60 64 68
72 76 80 84 88 92 96 100 104
108 112 116 120 124 128 132 136 140
144 148 152 156 160 164 168 172 176
180 184 188 192 196 200 204 208 212
216 220 224 228 232 236 240 244 248
252 256 260 264 268 272 276 280 284
288 292 296 300 304 308 312 316 320
324
CONNECTIVITY vtktypeint64
0 4 36 35 35 36 37 34 34
37 38 33 33 38 39 32 32 39
40 31 31 40 41 30 30 41 42
29 29 42 43 28 28 43 27 3
4 5 44 36 36 44 45 37 37
45 46 38 38 46 47 39 39 47
48 40 40 48 49 41 41 49 50
42 42 50 51 43 43 51 26 27
5 6 52 44 44 52 53 45 45
53 54 46 46 54 55 47 47 55
56 48 48 56 57 49 49 57 58
50 50 58 59 51 51 59 25 26
6 7 60 52 52 60 61 53 53
61 62 54 54 62 63 55 55 63
64 56 56 64 65 57 57 65 66
58 58 66 67 59 59 67 24 25
7 8 68 60 60 68 69 61 61
69 70 62 62 70 71 63 63 71
72 64 64 72 73 65 65 73 74
66 66 74 75 67 67 75 23 24
8 9 76 68 68 76 77 69 69
77 78 70 70 78 79 71 71 79
80 72 72 80 81 73 73 81 82
74 74 82 83 75 75 83 22 23
9 10 84 76 76 84 85 77 77
85 86 78 78 86 87 79 79 87
88 80 80 88 89 81 81 89 90
82 82 90 91 83 83 91 21 22
10 11 92 84 84 92 93 85 85
93 94 86 86 94 95 87 87 95
96 88 88 96 97 89 89 97 98
90 90 98 99 91 91 99 20 21
11 1 12 92 92 12 13 93 93
13 14 94 94 14 15 95 95 15
16 96 96 16 17 97 97 17 18
98 98 18 19 99 99 19 2 20
CELL_TYPES 81
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,172 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 100 float
60 -15 0 70 -15 0 70 -5 0
60 -5 0 61.0491 -14.5182 0 62.1928 -14.3644 0
63.3398 -14.5088 0 64.4529 -14.8275 0 65.55 -15.1989 0
66.6639 -15.5143 0 67.8118 -15.6519 0 68.9542 -15.489 0
70.4818 -13.9509 0 70.6356 -12.8072 0 70.4912 -11.6602 0
70.1725 -10.5471 0 69.8011 -9.45003 0 69.4856 -8.33607 0
69.3481 -7.18824 0 69.511 -6.04582 0 68.9542 -4.51097 0
67.8118 -4.3481 0 66.6639 -4.48565 0 65.55 -4.80108 0
64.4529 -5.17247 0 63.3398 -5.49117 0 62.1928 -5.63564 0
61.0491 -5.48183 0 59.2426 -5.98506 0 59.1559 -7.20893 0
59.7045 -8.32789 0 60.3544 -9.39597 0 60.3544 -10.604 0
59.7045 -11.6721 0 59.1559 -12.7911 0 59.2426 -14.0149 0
60.4292 -13.6332 0 60.3692 -12.5248 0 60.8409 -11.5101 0
61.3833 -10.5448 0 61.3421 -9.4549 0 60.7293 -8.48944 0
60.2263 -7.47474 0 60.3215 -6.36641 0 61.7104 -13.5065 0
61.677 -12.441 0 62.0719 -11.4575 0 62.5068 -10.5216 0
62.4244 -9.47779 0 61.8487 -8.54163 0 61.3913 -7.55802 0
61.4949 -6.49273 0 62.9951 -13.6117 0 62.9885 -12.5232 0
63.3063 -11.5044 0 63.6336 -10.5311 0 63.51 -9.46793 0
62.9715 -8.49437 0 62.5597 -7.47534 0 62.6718 -6.38716 0
64.2461 -13.8524 0 64.2663 -12.7023 0 64.5069 -11.6093 0
64.7264 -10.5598 0 64.5614 -9.43894 0 64.0602 -8.38903 0
63.6942 -7.2957 0 63.8147 -6.14614 0 65.4812 -14.134 0
65.5281 -12.9107 0 65.6916 -11.7318 0 65.8033 -10.5943 0
65.5969 -9.40416 0 65.1329 -8.26612 0 64.8127 -7.08675 0
64.9417 -5.86417 0 66.7331 -14.3721 0 66.8068 -13.088 0
66.8931 -11.8356 0 66.897 -10.6226 0 66.6493 -9.37553 0
66.2225 -8.16187 0 65.948 -6.90893 0 66.0855 -5.6257 0
68.0186 -14.472 0 68.119 -13.1664 0 68.1284 -11.8802 0
68.0246 -10.6314 0 67.7356 -9.36643 0 67.346 -8.11691 0
67.1172 -6.8301 0 67.2632 -5.52551 0 69.2985 -14.3382 0
69.4256 -13.0775 0 69.358 -11.8245 0 69.1468 -10.6072 0
68.8167 -9.39032 0 68.4641 -8.17212 0 68.2809 -6.91843 0
68.4354 -5.65888 0
CELLS 82 324
OFFSETS vtktypeint64
0 4 8 12 16 20 24 28 32
36 40 44 48 52 56 60 64 68
72 76 80 84 88 92 96 100 104
108 112 116 120 124 128 132 136 140
144 148 152 156 160 164 168 172 176
180 184 188 192 196 200 204 208 212
216 220 224 228 232 236 240 244 248
252 256 260 264 268 272 276 280 284
288 292 296 300 304 308 312 316 320
324
CONNECTIVITY vtktypeint64
0 4 36 35 35 36 37 34 34
37 38 33 33 38 39 32 32 39
40 31 31 40 41 30 30 41 42
29 29 42 43 28 28 43 27 3
4 5 44 36 36 44 45 37 37
45 46 38 38 46 47 39 39 47
48 40 40 48 49 41 41 49 50
42 42 50 51 43 43 51 26 27
5 6 52 44 44 52 53 45 45
53 54 46 46 54 55 47 47 55
56 48 48 56 57 49 49 57 58
50 50 58 59 51 51 59 25 26
6 7 60 52 52 60 61 53 53
61 62 54 54 62 63 55 55 63
64 56 56 64 65 57 57 65 66
58 58 66 67 59 59 67 24 25
7 8 68 60 60 68 69 61 61
69 70 62 62 70 71 63 63 71
72 64 64 72 73 65 65 73 74
66 66 74 75 67 67 75 23 24
8 9 76 68 68 76 77 69 69
77 78 70 70 78 79 71 71 79
80 72 72 80 81 73 73 81 82
74 74 82 83 75 75 83 22 23
9 10 84 76 76 84 85 77 77
85 86 78 78 86 87 79 79 87
88 80 80 88 89 81 81 89 90
82 82 90 91 83 83 91 21 22
10 11 92 84 84 92 93 85 85
93 94 86 86 94 95 87 87 95
96 88 88 96 97 89 89 97 98
90 90 98 99 91 91 99 20 21
11 1 12 92 92 12 13 93 93
13 14 94 94 14 15 95 95 15
16 96 96 16 17 97 97 17 18
98 98 18 19 99 99 19 2 20
CELL_TYPES 81
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,172 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 100 float
45 -15 0 55 -12 0 52 -5 0
48 -10 0 46.1111 -14.6667 0 47.2222 -14.3333 0
48.3333 -14 0 49.4444 -13.6667 0 50.5556 -13.3333 0
51.6667 -13 0 52.7778 -12.6667 0 53.8889 -12.3333 0
54.6667 -11.2222 0 54.3333 -10.4444 0 54 -9.66667 0
53.6667 -8.88889 0 53.3333 -8.11111 0 53 -7.33333 0
52.6667 -6.55556 0 52.3333 -5.77778 0 51.5556 -5.55556 0
51.1111 -6.11111 0 50.6667 -6.66667 0 50.2222 -7.22222 0
49.7778 -7.77778 0 49.3333 -8.33333 0 48.8889 -8.88889 0
48.4444 -9.44444 0 47.6667 -10.5556 0 47.3333 -11.1111 0
47 -11.6667 0 46.6667 -12.2222 0 46.3333 -12.7778 0
46 -13.3333 0 45.6667 -13.8889 0 45.3333 -14.4444 0
46.3704 -14.0864 0 46.6296 -13.5062 0 46.8889 -12.9259 0
47.1481 -12.3457 0 47.4074 -11.7654 0 47.6667 -11.1852 0
47.9259 -10.6049 0 48.1852 -10.0247 0 47.4074 -13.7284 0
47.5926 -13.1235 0 47.7778 -12.5185 0 47.963 -11.9136 0
48.1481 -11.3086 0 48.3333 -10.7037 0 48.5185 -10.0988 0
48.7037 -9.49383 0 48.4444 -13.3704 0 48.5556 -12.7407 0
48.6667 -12.1111 0 48.7778 -11.4815 0 48.8889 -10.8519 0
49 -10.2222 0 49.1111 -9.59259 0 49.2222 -8.96296 0
49.4815 -13.0123 0 49.5185 -12.358 0 49.5556 -11.7037 0
49.5926 -11.0494 0 49.6296 -10.3951 0 49.6667 -9.74074 0
49.7037 -9.08642 0 49.7407 -8.4321 0 50.5185 -12.6543 0
50.4815 -11.9753 0 50.4444 -11.2963 0 50.4074 -10.6173 0
50.3704 -9.93827 0 50.3333 -9.25926 0 50.2963 -8.58025 0
50.2593 -7.90123 0 51.5556 -12.2963 0 51.4444 -11.5926 0
51.3333 -10.8889 0 51.2222 -10.1852 0 51.1111 -9.48148 0
51 -8.77778 0 50.8889 -8.07407 0 50.7778 -7.37037 0
52.5926 -11.9383 0 52.4074 -11.2099 0 52.2222 -10.4815 0
52.037 -9.75309 0 51.8519 -9.02469 0 51.6667 -8.2963 0
51.4815 -7.5679 0 51.2963 -6.83951 0 53.6296 -11.5802 0
53.3704 -10.8272 0 53.1111 -10.0741 0 52.8519 -9.32099 0
52.5926 -8.5679 0 52.3333 -7.81482 0 52.0741 -7.06173 0
51.8148 -6.30864 0
CELLS 82 324
OFFSETS vtktypeint64
0 4 8 12 16 20 24 28 32
36 40 44 48 52 56 60 64 68
72 76 80 84 88 92 96 100 104
108 112 116 120 124 128 132 136 140
144 148 152 156 160 164 168 172 176
180 184 188 192 196 200 204 208 212
216 220 224 228 232 236 240 244 248
252 256 260 264 268 272 276 280 284
288 292 296 300 304 308 312 316 320
324
CONNECTIVITY vtktypeint64
0 4 36 35 35 36 37 34 34
37 38 33 33 38 39 32 32 39
40 31 31 40 41 30 30 41 42
29 29 42 43 28 28 43 27 3
4 5 44 36 36 44 45 37 37
45 46 38 38 46 47 39 39 47
48 40 40 48 49 41 41 49 50
42 42 50 51 43 43 51 26 27
5 6 52 44 44 52 53 45 45
53 54 46 46 54 55 47 47 55
56 48 48 56 57 49 49 57 58
50 50 58 59 51 51 59 25 26
6 7 60 52 52 60 61 53 53
61 62 54 54 62 63 55 55 63
64 56 56 64 65 57 57 65 66
58 58 66 67 59 59 67 24 25
7 8 68 60 60 68 69 61 61
69 70 62 62 70 71 63 63 71
72 64 64 72 73 65 65 73 74
66 66 74 75 67 67 75 23 24
8 9 76 68 68 76 77 69 69
77 78 70 70 78 79 71 71 79
80 72 72 80 81 73 73 81 82
74 74 82 83 75 75 83 22 23
9 10 84 76 76 84 85 77 77
85 86 78 78 86 87 79 79 87
88 80 80 88 89 81 81 89 90
82 82 90 91 83 83 91 21 22
10 11 92 84 84 92 93 85 85
93 94 86 86 94 95 87 87 95
96 88 88 96 97 89 89 97 98
90 90 98 99 91 91 99 20 21
11 1 12 92 92 12 13 93 93
13 14 94 94 14 15 95 95 15
16 96 96 16 17 97 97 17 18
98 98 18 19 99 99 19 2 20
CELL_TYPES 81
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,96 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 36 float
0 -15 0 10 -15 0 10 -5 0
0 -5 0 2 -15 0 4 -15 0
6 -15 0 8 -15 0 10 -13 0
10 -11 0 10 -9 0 10 -7 0
8 -5 0 6 -5 0 4 -5 0
2 -5 0 0 -7 0 0 -9 0
0 -11 0 0 -13 0 2 -13 0
2 -11 0 2 -9 0 2 -7 0
4 -13 0 4 -11 0 4 -9 0
4 -7 0 6 -13 0 6 -11 0
6 -9 0 6 -7 0 8 -13 0
8 -11 0 8 -9 0 8 -7 0
CELLS 51 150
OFFSETS vtktypeint64
0 3 6 9 12 15 18 21 24
27 30 33 36 39 42 45 48 51
54 57 60 63 66 69 72 75 78
81 84 87 90 93 96 99 102 105
108 111 114 117 120 123 126 129 132
135 138 141 144 147 150
CONNECTIVITY vtktypeint64
0 4 19 19 4 20 19 20 18
18 20 21 18 21 17 17 21 22
17 22 16 16 22 23 16 23 3
3 23 15 4 5 20 20 5 24
20 24 21 21 24 25 21 25 22
22 25 26 22 26 23 23 26 27
23 27 15 15 27 14 5 6 24
24 6 28 24 28 25 25 28 29
25 29 26 26 29 30 26 30 27
27 30 31 27 31 14 14 31 13
6 7 28 28 7 32 28 32 29
29 32 33 29 33 30 30 33 34
30 34 31 31 34 35 31 35 13
13 35 12 7 1 32 32 1 8
32 8 33 33 8 9 33 9 34
34 9 10 34 10 35 35 10 11
35 11 12 12 11 2
CELL_TYPES 50
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
@@ -0,0 +1,85 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 49 float
15 -15 0 25 -15 0 25 -5 0
15 -5 0 16.6667 -15 0 18.3333 -15 0
20 -15 0 21.6667 -15 0 23.3333 -15 0
25 -13.3333 0 25 -11.6667 0 25 -10 0
25 -8.33333 0 25 -6.66667 0 23.3333 -5 0
21.6667 -5 0 20 -5 0 18.3333 -5 0
16.6667 -5 0 15 -6.66667 0 15 -8.33333 0
15 -10 0 15 -11.6667 0 15 -13.3333 0
16.6667 -13.3333 0 16.6667 -11.6667 0 16.6667 -10 0
16.6667 -8.33333 0 16.6667 -6.66667 0 18.3333 -13.3333 0
18.3333 -11.6667 0 18.3333 -10 0 18.3333 -8.33333 0
18.3333 -6.66667 0 20 -13.3333 0 20 -11.6667 0
20 -10 0 20 -8.33333 0 20 -6.66667 0
21.6667 -13.3333 0 21.6667 -11.6667 0 21.6667 -10 0
21.6667 -8.33333 0 21.6667 -6.66667 0 23.3333 -13.3333 0
23.3333 -11.6667 0 23.3333 -10 0 23.3333 -8.33333 0
23.3333 -6.66667 0
CELLS 37 144
OFFSETS vtktypeint64
0 4 8 12 16 20 24 28 32
36 40 44 48 52 56 60 64 68
72 76 80 84 88 92 96 100 104
108 112 116 120 124 128 132 136 140
144
CONNECTIVITY vtktypeint64
0 4 24 23 23 24 25 22 22
25 26 21 21 26 27 20 20 27
28 19 19 28 18 3 4 5 29
24 24 29 30 25 25 30 31 26
26 31 32 27 27 32 33 28 28
33 17 18 5 6 34 29 29 34
35 30 30 35 36 31 31 36 37
32 32 37 38 33 33 38 16 17
6 7 39 34 34 39 40 35 35
40 41 36 36 41 42 37 37 42
43 38 38 43 15 16 7 8 44
39 39 44 45 40 40 45 46 41
41 46 47 42 42 47 48 43 43
48 14 15 8 1 9 44 44 9
10 45 45 10 11 46 46 11 12
47 47 12 13 48 48 13 2 14
CELL_TYPES 36
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,172 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 100 float
30 -15 0 40 -15 0 40 -5 0
30 -5 0 32.0896 -15 0 33.2337 -15 0
34.0331 -15 0 34.6909 -15 0 35.3091 -15 0
35.9669 -15 0 36.7663 -15 0 37.9104 -15 0
40 -14.5199 0 40 -13.7184 0 40 -12.5 0
40 -10.8891 0 40 -9.11093 0 40 -7.5 0
40 -6.28162 0 40 -5.48007 0 37.9104 -5 0
36.7663 -5 0 35.9669 -5 0 35.3091 -5 0
34.6909 -5 0 34.0331 -5 0 33.2337 -5 0
32.0896 -5 0 30 -5.48007 0 30 -6.28162 0
30 -7.5 0 30 -9.11093 0 30 -10.8891 0
30 -12.5 0 30 -13.7184 0 30 -14.5199 0
32.0896 -14.5199 0 32.0896 -13.7184 0 32.0896 -12.5 0
32.0896 -10.8891 0 32.0896 -9.11093 0 32.0896 -7.5 0
32.0896 -6.28162 0 32.0896 -5.48007 0 33.2337 -14.5199 0
33.2337 -13.7184 0 33.2337 -12.5 0 33.2337 -10.8891 0
33.2337 -9.11093 0 33.2337 -7.5 0 33.2337 -6.28162 0
33.2337 -5.48007 0 34.0331 -14.5199 0 34.0331 -13.7184 0
34.0331 -12.5 0 34.0331 -10.8891 0 34.0331 -9.11093 0
34.0331 -7.5 0 34.0331 -6.28162 0 34.0331 -5.48007 0
34.6909 -14.5199 0 34.6909 -13.7184 0 34.6909 -12.5 0
34.6909 -10.8891 0 34.6909 -9.11093 0 34.6909 -7.5 0
34.6909 -6.28162 0 34.6909 -5.48007 0 35.3091 -14.5199 0
35.3091 -13.7184 0 35.3091 -12.5 0 35.3091 -10.8891 0
35.3091 -9.11093 0 35.3091 -7.5 0 35.3091 -6.28162 0
35.3091 -5.48007 0 35.9669 -14.5199 0 35.9669 -13.7184 0
35.9669 -12.5 0 35.9669 -10.8891 0 35.9669 -9.11093 0
35.9669 -7.5 0 35.9669 -6.28162 0 35.9669 -5.48007 0
36.7663 -14.5199 0 36.7663 -13.7184 0 36.7663 -12.5 0
36.7663 -10.8891 0 36.7663 -9.11093 0 36.7663 -7.5 0
36.7663 -6.28162 0 36.7663 -5.48007 0 37.9104 -14.5199 0
37.9104 -13.7184 0 37.9104 -12.5 0 37.9104 -10.8891 0
37.9104 -9.11093 0 37.9104 -7.5 0 37.9104 -6.28162 0
37.9104 -5.48007 0
CELLS 82 324
OFFSETS vtktypeint64
0 4 8 12 16 20 24 28 32
36 40 44 48 52 56 60 64 68
72 76 80 84 88 92 96 100 104
108 112 116 120 124 128 132 136 140
144 148 152 156 160 164 168 172 176
180 184 188 192 196 200 204 208 212
216 220 224 228 232 236 240 244 248
252 256 260 264 268 272 276 280 284
288 292 296 300 304 308 312 316 320
324
CONNECTIVITY vtktypeint64
0 4 36 35 35 36 37 34 34
37 38 33 33 38 39 32 32 39
40 31 31 40 41 30 30 41 42
29 29 42 43 28 28 43 27 3
4 5 44 36 36 44 45 37 37
45 46 38 38 46 47 39 39 47
48 40 40 48 49 41 41 49 50
42 42 50 51 43 43 51 26 27
5 6 52 44 44 52 53 45 45
53 54 46 46 54 55 47 47 55
56 48 48 56 57 49 49 57 58
50 50 58 59 51 51 59 25 26
6 7 60 52 52 60 61 53 53
61 62 54 54 62 63 55 55 63
64 56 56 64 65 57 57 65 66
58 58 66 67 59 59 67 24 25
7 8 68 60 60 68 69 61 61
69 70 62 62 70 71 63 63 71
72 64 64 72 73 65 65 73 74
66 66 74 75 67 67 75 23 24
8 9 76 68 68 76 77 69 69
77 78 70 70 78 79 71 71 79
80 72 72 80 81 73 73 81 82
74 74 82 83 75 75 83 22 23
9 10 84 76 76 84 85 77 77
85 86 78 78 86 87 79 79 87
88 80 80 88 89 81 81 89 90
82 82 90 91 83 83 91 21 22
10 11 92 84 84 92 93 85 85
93 94 86 86 94 95 87 87 95
96 88 88 96 97 89 89 97 98
90 90 98 99 91 91 99 20 21
11 1 12 92 92 12 13 93 93
13 14 94 94 14 15 95 95 15
16 96 96 16 17 97 97 17 18
98 98 18 19 99 99 19 2 20
CELL_TYPES 81
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,88 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 31 float
0 0 0 10 0 0 5 8 0
2 0 0 4 0 0 6 0 0
8 0 0 9 1.6 0 8 3.2 0
7 4.8 0 6 6.4 0 4 6.4 0
3 4.8 0 2 3.2 0 1 1.6 0
1.8 0.32 0 1.6 0.64 0 1.4 0.96 0
1.2 1.28 0 3.6 0.64 0 3.2 1.28 0
2.8 1.92 0 2.4 2.56 0 5.4 0.96 0
4.8 1.92 0 4.2 2.88 0 3.6 3.84 0
7.2 1.28 0 6.4 2.56 0 5.6 3.84 0
4.8 5.12 0
CELLS 46 135
OFFSETS vtktypeint64
0 3 6 9 12 15 18 21 24
27 30 33 36 39 42 45 48 51
54 57 60 63 66 69 72 75 78
81 84 87 90 93 96 99 102 105
108 111 114 117 120 123 126 129 132
135
CONNECTIVITY vtktypeint64
0 3 15 0 15 16 0 16 17
0 17 18 0 18 14 3 4 15
15 4 19 15 19 16 16 19 20
16 20 17 17 20 21 17 21 18
18 21 22 18 22 14 14 22 13
4 5 19 19 5 23 19 23 20
20 23 24 20 24 21 21 24 25
21 25 22 22 25 26 22 26 13
13 26 12 5 6 23 23 6 27
23 27 24 24 27 28 24 28 25
25 28 29 25 29 26 26 29 30
26 30 12 12 30 11 6 1 27
27 1 7 27 7 28 28 7 8
28 8 29 29 8 9 29 9 30
30 9 10 30 10 11 11 10 2
CELL_TYPES 45
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
@@ -0,0 +1,82 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 43 float
15 0 0 25 0 0 20 8 0
16.6667 0 0 18.3333 0 0 20 0 0
21.6667 0 0 23.3333 0 0 24.1667 1.33333 0
23.3333 2.66667 0 22.5 4 0 21.6667 5.33333 0
20.8333 6.66667 0 19.1667 6.66667 0 18.3333 5.33333 0
17.5 4 0 16.6667 2.66667 0 15.8333 1.33333 0
16.5278 0.222222 0 16.3889 0.444444 0 16.25 0.666667 0
16.1111 0.888889 0 15.9722 1.11111 0 18.0556 0.444444 0
17.7778 0.888889 0 17.5 1.33333 0 17.2222 1.77778 0
16.9444 2.22222 0 19.5833 0.666667 0 19.1667 1.33333 0
18.75 2 0 18.3333 2.66667 0 17.9167 3.33333 0
21.1111 0.888889 0 20.5556 1.77778 0 20 2.66667 0
19.4444 3.55556 0 18.8889 4.44444 0 22.6389 1.11111 0
21.9444 2.22222 0 21.25 3.33333 0 20.5556 4.44444 0
19.8611 5.55556 0
CELLS 37 138
OFFSETS vtktypeint64
0 3 6 9 12 15 18 22 26
30 34 38 42 46 50 54 58 62
66 70 74 78 82 86 90 94 98
102 106 110 114 118 122 126 130 134
138
CONNECTIVITY vtktypeint64
0 3 18 0 18 19 0 19 20
0 20 21 0 21 22 0 22 17
3 4 23 18 18 23 24 19 19
24 25 20 20 25 26 21 21 26
27 22 22 27 16 17 4 5 28
23 23 28 29 24 24 29 30 25
25 30 31 26 26 31 32 27 27
32 15 16 5 6 33 28 28 33
34 29 29 34 35 30 30 35 36
31 31 36 37 32 32 37 14 15
6 7 38 33 33 38 39 34 34
39 40 35 35 40 41 36 36 41
42 37 37 42 13 14 7 1 8
38 38 8 9 39 39 9 10 40
40 10 11 41 41 11 12 42 42
12 2 13
CELL_TYPES 36
5
5
5
5
5
5
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,117 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 64 float
30 0 0 40 0 0 35 8 0
32.0896 0 0 33.2337 0 0 34.0331 0 0
34.6909 0 0 35.3091 0 0 35.9669 0 0
36.7663 0 0 37.9104 0 0 39.1667 1.33333 0
38.3333 2.66667 0 37.5 4 0 36.6667 5.33333 0
35.8333 6.66667 0 33.9552 6.32836 0 33.3831 5.41302 0
32.9835 4.77354 0 32.6546 4.24728 0 32.3454 3.75272 0
32.0165 3.22646 0 31.6169 2.58698 0 31.0448 1.67164 0
31.9154 0.278607 0 31.7413 0.557213 0 31.5672 0.83582 0
31.393 1.11443 0 31.2189 1.39303 0 32.9642 0.431163 0
32.6948 0.862326 0 32.4253 1.29349 0 32.1558 1.72465 0
31.8863 2.15581 0 33.697 0.537743 0 33.3609 1.07549 0
33.0248 1.61323 0 32.6887 2.15097 0 32.3526 2.68872 0
34.3 0.625453 0 33.9091 1.25091 0 33.5182 1.87636 0
33.1273 2.50181 0 32.7364 3.12727 0 34.8667 0.70788 0
34.4243 1.41576 0 33.9818 2.12364 0 33.5394 2.83152 0
33.097 3.5394 0 35.4697 0.79559 0 34.9724 1.59118 0
34.4752 2.38677 0 33.978 3.18236 0 33.4807 3.97795 0
36.2024 0.90217 0 35.6386 1.80434 0 35.0747 2.70651 0
34.5109 3.60868 0 33.947 4.51085 0 37.2512 1.05473 0
36.592 2.10945 0 35.9328 3.16418 0 35.2736 4.21891 0
34.6144 5.27363 0
CELLS 55 210
OFFSETS vtktypeint64
0 3 6 9 12 15 18 22 26
30 34 38 42 46 50 54 58 62
66 70 74 78 82 86 90 94 98
102 106 110 114 118 122 126 130 134
138 142 146 150 154 158 162 166 170
174 178 182 186 190 194 198 202 206
210
CONNECTIVITY vtktypeint64
0 3 24 0 24 25 0 25 26
0 26 27 0 27 28 0 28 23
3 4 29 24 24 29 30 25 25
30 31 26 26 31 32 27 27 32
33 28 28 33 22 23 4 5 34
29 29 34 35 30 30 35 36 31
31 36 37 32 32 37 38 33 33
38 21 22 5 6 39 34 34 39
40 35 35 40 41 36 36 41 42
37 37 42 43 38 38 43 20 21
6 7 44 39 39 44 45 40 40
45 46 41 41 46 47 42 42 47
48 43 43 48 19 20 7 8 49
44 44 49 50 45 45 50 51 46
46 51 52 47 47 52 53 48 48
53 18 19 8 9 54 49 49 54
55 50 50 55 56 51 51 56 57
52 52 57 58 53 53 58 17 18
9 10 59 54 54 59 60 55 55
60 61 56 56 61 62 57 57 62
63 58 58 63 16 17 10 1 11
59 59 11 12 60 60 12 13 61
61 13 14 62 62 14 15 63 63
15 2 16
CELL_TYPES 54
5
5
5
5
5
5
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,82 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 43 float
45 0 0 55 0 0 50 8 0
46.6667 0 0 48.3333 0 0 50 0 0
51.6667 0 0 53.3333 0 0 54.1667 1.33333 0
53.3333 2.66667 0 52.5 4 0 51.6667 5.33333 0
50.8333 6.66667 0 49.1667 6.66667 0 48.3333 5.33333 0
47.5 4 0 46.6667 2.66667 0 45.8333 1.33333 0
53.4722 0.222222 0 53.6111 0.444444 0 53.75 0.666667 0
53.8889 0.888889 0 54.0278 1.11111 0 51.9444 0.444444 0
52.2222 0.888889 0 52.5 1.33333 0 52.7778 1.77778 0
53.0556 2.22222 0 50.4167 0.666667 0 50.8333 1.33333 0
51.25 2 0 51.6667 2.66667 0 52.0833 3.33333 0
48.8889 0.888889 0 49.4444 1.77778 0 50 2.66667 0
50.5556 3.55556 0 51.1111 4.44444 0 47.3611 1.11111 0
48.0556 2.22222 0 48.75 3.33333 0 49.4444 4.44444 0
50.1389 5.55556 0
CELLS 37 138
OFFSETS vtktypeint64
0 3 6 9 12 15 18 22 26
30 34 38 42 46 50 54 58 62
66 70 74 78 82 86 90 94 98
102 106 110 114 118 122 126 130 134
138
CONNECTIVITY vtktypeint64
1 18 7 1 19 18 1 20 19
1 21 20 1 22 21 1 8 22
7 18 23 6 18 19 24 23 19
20 25 24 20 21 26 25 21 22
27 26 22 8 9 27 6 23 28
5 23 24 29 28 24 25 30 29
25 26 31 30 26 27 32 31 27
9 10 32 5 28 33 4 28 29
34 33 29 30 35 34 30 31 36
35 31 32 37 36 32 10 11 37
4 33 38 3 33 34 39 38 34
35 40 39 35 36 41 40 36 37
42 41 37 11 12 42 3 38 17
0 38 39 16 17 39 40 15 16
40 41 14 15 41 42 13 14 42
12 2 13
CELL_TYPES 36
5
5
5
5
5
5
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,83 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 46 float
60 0 0 70 0 0 65 5 0
61.1111 0 0 62.2222 0 0 63.3333 0 0
64.4444 0 0 65.5556 0 0 66.6667 0 0
67.7778 0 0 68.8889 0 0 68.75 1.25 0
67.5 2.5 0 66.25 3.75 0 64.4444 4.44444 0
63.8889 3.88889 0 63.3333 3.33333 0 62.7778 2.77778 0
62.2222 2.22222 0 61.6667 1.66667 0 61.1111 1.11111 0
60.5556 0.555556 0 60.9722 0.138889 0 60.8333 0.277778 0
60.6944 0.416667 0 61.9444 0.277778 0 61.6667 0.555556 0
61.3889 0.833333 0 62.9167 0.416667 0 62.5 0.833333 0
62.0833 1.25 0 63.8889 0.555556 0 63.3333 1.11111 0
62.7778 1.66667 0 64.8611 0.694444 0 64.1667 1.38889 0
63.4722 2.08333 0 65.8333 0.833333 0 65 1.66667 0
64.1667 2.5 0 66.8056 0.972222 0 65.8333 1.94444 0
64.8611 2.91667 0 67.7778 1.11111 0 66.6667 2.22222 0
65.5556 3.33333 0
CELLS 37 140
OFFSETS vtktypeint64
0 3 6 9 12 16 20 24 28
32 36 40 44 48 52 56 60 64
68 72 76 80 84 88 92 96 100
104 108 112 116 120 124 128 132 136
140
CONNECTIVITY vtktypeint64
0 3 22 0 22 23 0 23 24
0 24 21 3 4 25 22 22 25
26 23 23 26 27 24 24 27 20
21 4 5 28 25 25 28 29 26
26 29 30 27 27 30 19 20 5
6 31 28 28 31 32 29 29 32
33 30 30 33 18 19 6 7 34
31 31 34 35 32 32 35 36 33
33 36 17 18 7 8 37 34 34
37 38 35 35 38 39 36 36 39
16 17 8 9 40 37 37 40 41
38 38 41 42 39 39 42 15 16
9 10 43 40 40 43 44 41 41
44 45 42 42 45 14 15 10 1
11 43 43 11 12 44 44 12 13
45 45 13 2 14
CELL_TYPES 36
5
5
5
5
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
@@ -0,0 +1,39 @@
# vtk DataFile Version 5.1
vtk output
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 21 float
75 0 0 85 0 0 80 5 0
76.6667 0 0 78.3333 0 0 80 0 0
81.6667 0 0 83.3333 0 0 83.75 1.25 0
82.5 2.5 0 81.25 3.75 0 78.75 3.75 0
77.5 2.5 0 76.25 1.25 0 80.0004 1.23846 0
77.0406 0.828065 0 82.9594 0.828065 0 78.3367 1.2217 0
81.6633 1.2217 0 80.0005 3.32117 0 80.0004 2.42531 0
CELLS 14 52
OFFSETS vtktypeint64
0 4 8 12 16 20 24 28 32
36 40 44 48 52
CONNECTIVITY vtktypeint64
14 17 4 5 14 5 6 18 8
9 18 16 13 15 17 12 1 8
16 7 0 3 15 13 11 19 10
2 7 16 18 6 3 4 17 15
12 20 19 11 9 10 19 20 9
20 14 18 12 17 14 20
CELL_TYPES 13
9
9
9
9
9
9
9
9
9
9
9
9
9