FEM Mesh
Do not translate !
Create a FEM Mesh
There are different possibilities to create a FEM Mesh in FreeCAD:
- The Gui tool
- The Gui tool by Python
- Python directly means make the FEM Mesh by Hand
- Import a FEM Mesh
Objects created in PartDesign and Part are supported, as well as simple copies of those bodies. There are two Meshers available to the user: Netgen and GMSH. Netgen is included in FreeCAD. Refer to FEM Install For FEM Mesh generation by GMSH user psicofil has provided a GMSHMesh Macro.
Element | Import unv | Export unv | Export inp | Python created | ViewProvider nodes | ViewProvider all |
---|---|---|---|---|---|---|
seg2 | yes | yes | yes | yes | yes | yes |
seg3 | yes | yes | yes | no | yes | yes |
tria3 | yes | yes | yes | yes | yes | yes |
tria6 | yes | yes | yes | yes | yes | yes |
quad4 | yes | yes | no | yes | yes | yes |
quad8 | yes | yes | no | yes | no | no |
tetra4 | yes | yes | yes | yes | yes | yes |
tetra8 | yes | yes | yes | yes | yes | yes |
pyra5 | ? | ? | no | no | no | no |
pyra13 | ? | ? | no | no | no | no |
hexa8 | yes | yes | no | yes | yes | yes |
hexa20 | ? | ? | no | no | no | no |
penta6 | ? | ? | no | no | no | no |
penta15 | ? | ? | no | no | no | no |
FEM Mesh Datastructure inside FreeCAD
Element Types
Introduction
This description is based on the MED format as described in modele de donnes.
Segment element
Edge | Node 1 | Node 2 | Middle node |
---|---|---|---|
E1 | N1 | N2 | N3 |
Triangle element
Edge | Node 1 | Node 2 | Middle node |
---|---|---|---|
E1 | N1 | N2 | N4 |
E2 | N2 | N3 | N5 |
E3 | N3 | N1 | N6 |
Face | Edge 1 | Edge 2 | Edge 3 |
---|---|---|---|
F1 | E1 | E2 | E3 |
Face | Node 1 | Node 2 | Node 3 | Node 1 |
---|---|---|---|---|
F1 | N1 | N2 | N3 | N1 |
Face | Node 1 | Node 2 | Node 3 | Node 4 | Node 5 | Node 6 | Node 1 |
---|---|---|---|---|---|---|---|
F1 | N1 | N4 | N2 | N5 | N3 | N6 | N1 |
Quadrangle element
Edge | Node 1 | Node 2 | Middle node |
---|---|---|---|
E1 | N1 | N2 | N5 |
E2 | N2 | N3 | N6 |
E3 | N3 | N4 | N7 |
E4 | N4 | N1 | N8 |
Face | Edge 1 | Edge 2 | Edge 3 | Edge 4 |
---|---|---|---|---|
F1 | E1 | E2 | E3 | E4 |
Face | Node 1 | Node 2 | Node 3 | Node 4 | Node 1 |
---|---|---|---|---|---|
F1 | N1 | N2 | N3 | N4 | N1 |
Face | Node 1 | Node 2 | Node 3 | Node 4 | Node 5 | Node 6 | Node 7 | Node 8 | Node 1 |
---|---|---|---|---|---|---|---|---|---|
F1 | N1 | N5 | N2 | N6 | N3 | N7 | N4 | N8 | N1 |
Tetrahedron element
Edge | Node 1 | Node 2 | Middle node |
---|---|---|---|
E1 | N1 | N2 | N5 |
E2 | N2 | N3 | N6 |
E3 | N3 | N1 | N7 |
E4 | N1 | N4 | N8 |
E5 | N2 | N4 | N9 |
E6 | N3 | N4 | N10 |
Face | Edge 1 | Edge 2 | Edge 3 |
---|---|---|---|
F1 | E1 | E2 | E3 |
F2 | E4 | -E5 | -E1 |
F3 | E5 | -E6 | -E2 |
F4 | E6 | -E4 | -E3 |
Face | Node 1 | Node 2 | Node 3 | Node 1 |
---|---|---|---|---|
F1 | N1 | N2 | N3 | N1 |
F2 | N1 | N4 | N2 | N1 |
F3 | N2 | N4 | N3 | N2 |
F4 | N3 | N4 | N1 | N3 |
Face | Node 1 | Node 2 | Node 3 | Node 4 | Node 5 | Node 6 | Node 1 |
---|---|---|---|---|---|---|---|
F1 | N1 | N5 | N2 | N6 | N3 | N7 | N1 |
F2 | N1 | N8 | N4 | N9 | N2 | N5 | N1 |
F3 | N2 | N9 | N4 | N10 | N3 | N6 | N2 |
F4 | N3 | N10 | N4 | N8 | N1 | N7 | N3 |
Hexahedron element
Edge | Node 1 | Node 2 | Middle node |
---|---|---|---|
E1 | N1 | N2 | N9 |
E2 | N2 | N3 | N10 |
E3 | N3 | N4 | N11 |
E4 | N4 | N1 | N12 |
E5 | N5 | N6 | N13 |
E6 | N6 | N7 | N14 |
E7 | N7 | N8 | N15 |
E8 | N8 | N5 | N16 |
E9 | N1 | N5 | N17 |
E10 | N2 | N6 | N18 |
E11 | N3 | N7 | N19 |
E12 | N4 | N8 | N20 |
Face | Edge 1 | Edge 2 | Edge 3 | Edge 4 |
---|---|---|---|---|
F1 | E1 | E2 | E3 | E4 |
F2 | -E8 | -E7 | -E6 | -E5 |
F3 | E9 | E5 | -E10 | -E1 |
F4 | E10 | E6 | -E11 | -E2 |
F5 | E11 | E7 | -E12 | -E3 |
F6 | E12 | E8 | -E9 | -E4 |
Face | Node 1 | Node 2 | Node 3 | Node 4 | Node 1 |
---|---|---|---|---|---|
F1 | N1 | N2 | N3 | N4 | N1 |
F2 | N5 | N8 | N7 | N6 | N5 |
F3 | N1 | N5 | N6 | N2 | N1 |
F4 | N2 | N6 | N7 | N3 | N2 |
F5 | N3 | N7 | N8 | N4 | N3 |
F6 | N4 | N8 | N5 | N1 | N4 |
Face | Node 1 | Node 2 | Node 3 | Node 4 | Node 5 | Node 6 | Node 7 | Node 8 | Node 1 |
---|---|---|---|---|---|---|---|---|---|
F1 | N1 | N9 | N2 | N10 | N3 | N11 | N4 | N12 | N1 |
F2 | N5 | N16 | N8 | N15 | N7 | N14 | N6 | N13 | N5 |
F3 | N1 | N17 | N5 | N13 | N6 | N18 | N2 | N9 | N1 |
F4 | N2 | N18 | N6 | N14 | N7 | N19 | N3 | N10 | N2 |
F5 | N3 | N19 | N7 | N15 | N8 | N20 | N4 | N11 | N3 |
F6 | N4 | N20 | N8 | N16 | N5 | N17 | N1 | N12 | N4 |
Pentahedron element (prism)
Edge | Node 1 | Node 2 | Middle node |
---|---|---|---|
E1 | N1 | N2 | N7 |
E2 | N2 | N3 | N8 |
E3 | N3 | N1 | N9 |
E4 | N4 | N5 | N10 |
E5 | N5 | N6 | N11 |
E6 | N6 | N4 | N12 |
E7 | N1 | N4 | N13 |
E8 | N2 | N5 | N14 |
E9 | N3 | N6 | N15 |
Face | Edge 1 | Edge 2 | Edge 3 | Edge 4 |
---|---|---|---|---|
F1 | E1 | E2 | E3 | _ |
F2 | -E6 | -E5 | -E4 | _ |
F3 | E7 | E4 | -E8 | -E1 |
F4 | E8 | E5 | -E9 | -E2 |
F5 | E9 | E6 | -E7 | -E3 |
Face | Node 1 | Node 2 | Node 3 | Node 4 | Node 1 |
---|---|---|---|---|---|
F1 | N1 | N2 | N3 | _ | N1 |
F2 | N4 | N6 | N5 | _ | N4 |
F3 | N1 | N4 | N5 | N2 | N1 |
F4 | N2 | N5 | N6 | N3 | N2 |
F5 | N3 | N6 | N4 | N1 | N3 |
Face | Node 1 | Node 2 | Node 3 | Node 4 | Node 5 | Node 6 | Node 7 | Node 8 | Node 1 |
---|---|---|---|---|---|---|---|---|---|
F1 | N1 | N7 | N2 | N8 | N3 | N9 | _ | _ | N1 |
F2 | N4 | N12 | N6 | N11 | N5 | N10 | _ | _ | N4 |
F3 | N1 | N13 | N4 | N10 | N5 | N14 | N2 | N7 | N1 |
F4 | N2 | N14 | N5 | N11 | N6 | N15 | N3 | N8 | N2 |
F5 | N3 | N15 | N6 | N12 | N4 | N13 | N1 | N9 | N3 |
Pyramid element
Edge | Node 1 | Node 2 | Middle node |
---|---|---|---|
E1 | N1 | N2 | N6 |
E2 | N2 | N3 | N7 |
E3 | N3 | N4 | N8 |
E4 | N4 | N1 | N9 |
E5 | N1 | N5 | N10 |
E6 | N2 | N5 | N11 |
E7 | N3 | N5 | N12 |
E8 | N4 | N5 | N13 |
Face | Edge 1 | Edge 2 | Edge 3 | Edge 4 |
---|---|---|---|---|
F1 | E1 | E2 | E3 | E4 |
F2 | E5 | -E6 | -E1 | _ |
F3 | E6 | -E7 | -E2 | _ |
F4 | E7 | -E8 | -E3 | _ |
F5 | E8 | E5 | -E4 | _ |
Face | Node 1 | Node 2 | Node 3 | Node 4 | Node 1 |
---|---|---|---|---|---|
F1 | N1 | N2 | N3 | N4 | N1 |
F2 | N1 | N5 | N2 | _ | N1 |
F3 | N2 | N5 | N3 | _ | N2 |
F4 | N3 | N5 | N4 | _ | N3 |
F5 | N4 | N5 | N1 | _ | N4 |
Face | Node 1 | Node 2 | Node 3 | Node4 | Node 5 | Node 6 | Node 7 | Node 8 | Node 1 |
---|---|---|---|---|---|---|---|---|---|
F1 | N1 | N6 | N2 | N7 | N3 | N8 | N4 | N9 | N1 |
F2 | N1 | N10 | N5 | N11 | N2 | N6 | _ | _ | N1 |
F3 | N2 | N11 | N5 | N12 | N13 | N7 | _ | _ | N2 |
F4 | N3 | N12 | N5 | N13 | N4 | N8 | _ | _ | N3 |
F5 | N4 | N13 | N5 | N10 | N1 | N9 | _ | _ | N4 |
FEM
- Materials: Solid, Fluid, Nonlinear mechanical, Reinforced (concrete); Material editor
- Element geometry: Beam (1D), Beam rotation (1D), Shell (2D), Fluid flow (1D)
Constraints
- Electromagnetic: Electrostatic potential, Current density, Magnetization
- Geometrical: Plane rotation, Section print, Transform
- Mechanical: Fixed, Displacement, Contact, Tie, Spring, Force, Pressure, Centrif, Self weight
- Thermal: Initial temperature, Heat flux, Temperature, Body heat source
- Overwrite Constants: Constant vacuum permittivity
- Solve: CalculiX Standard, Elmer, Mystran, Z88; Equations: Deformation, Elasticity, Electrostatic, Electricforce, Magnetodynamic, Magnetodynamic 2D, Flow, Flux, Heat; Solver: Solver control, Solver run
- Results: Purge, Show; Postprocessing: Apply changes, Pipeline from result, Warp filter, Scalar clip filter, Function cut filter, Region clip filter, Contours filter, Line clip filter, Stress linearization plot, Data at point clip filter, Filter function plane, Filter function sphere, Filter function cylinder, Filter function box
- Additional: Preferences; FEM Install, FEM Mesh, FEM Solver, FEM CalculiX, FEM Concrete; FEM Element Types
User documentation
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Assembly, BIM, CAM, Draft, FEM, Inspection, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub
Scripting
Create a FEM Mesh totally py python
Creating a mesh with one Tet-10 Elements
import FreeCAD, Fem
# create a empty mesh
m = Fem.FemMesh()
#create the nodes
m.addNode(0,1,0)
m.addNode(0,0,1)
m.addNode(1,0,0)
m.addNode(0,0,0)
m.addNode(0,0.5,0.5)
m.addNode(0.5,0.03,.5)
m.addNode(0.5,0.5,0.03)
m.addNode(0,0.5,0)
m.addNode(0.03,0,0.5)
m.addNode(0.5,0,0)
# add the volume with the created nodes
m.addVolume([1,2,3,4,5,6,7,8,9,10])
Fem.show(m)
If you want to have predefined element and node numbering:
m.addNode(0.0,1.0,0.0,1)
m.addVolume([1,2,3,4,5,6,7,8,9,10],1)
Visual handling
Highlight some nodes on the view:
import FreeCAD, Fem
m = Fem.FemMesh()
m.addNode(0,1,0)
m.addNode(0,0,1)
m.addNode(1,0,0)
m.addNode(0,0,0)
m.addNode(0,0.5,0.5)
m.addNode(0.5,0.03,.5)
m.addNode(0.5,0.5,0.03)
m.addNode(0,0.5,0)
m.addNode(0.03,0,0.5)
m.addNode(0.5,0,0)
m.addVolume([1,2,3,4,5,6,7,8,9,10])
Fem.show(m)
Gui.ActiveDocument.ActiveObject.HighlightedNodes = [1,2,3]
Postprocessing colors and displacement:
Highlight some nodes on the view:
# set the volume 1 to red
Gui.ActiveDocument.ActiveObject.ElementColor= {1:(1,0,0)}
# set the node 1 and 2 to a certain Color and interpolate the survace
Gui.ActiveDocument.ActiveObject.NodeColor= {1:(1,0,0),2:(1,0,0)}
# set the node 1 and 2 to a certain displacement
Gui.ActiveDocument.ActiveObject.NodeDisplacement= {1:FreeCAD.Vector(1,0,0),2:FreeCAD.Vector(1,0,0)}
# double the factor of the displacement shown
Gui.ActiveDocument.ActiveObject.animate(2.0)
ToDo's
- introduction Fem meshes.