FEM Mesh/it

Creare una Mesh FEM
In FreeCAD ci sono diverse possibilità per creare una Mesh FEM:
 * Lo strumento Gui Mesh da forma
 * Lo strumento Gui di Python
 * Direttamente in Python, il che significa creare la Mesh FEM a mano
 * Importare una Mesh FEM

There are different possibilities to set up a mesh in the FEM Workbench:
 * The Gmsh tool from the graphical user interface.
 * The Netgen tool from the graphical user interface.
 * Importing a mesh from another program. In particular, Gmsh and Netgen can be used by themselves outside of FreeCAD to mesh solid bodies like Step files.
 * Manually creating the mesh through Python scripting.

Sono supportati gli oggetti creati in Part Design e Parte, così come le copie semplici di tali corpi. Sono disponibili due mesher: Netgen e GMSH. Netgen è incluso in FreeCAD. Fare riferimento a Installare FEM. Per generare una Mesh FEM con GMSH l'utente psicofil ha fornito la Macro GMSHMesh.





The Gmsh and Netgen tools are convenience tools to quickly mesh a body, and thus don't expose the full capabilities of these programs; they normally create triangular meshes, which may not be ideal for some types of analysis. If you'd like to have more control of the created mesh (use only quadrilaterals, precise element number and size, variable resolution of the mesh, etc.), you should use these programs externally, produce a mesh file in a supported format, and import this file into FreeCAD.

Previously, Netgen was included with FreeCAD and could be used immediately. Now, both Netgen and Gmsh should be installed before they can be used by the FEM Workbench. Refer to FEM Install for instructions.

implementati

 * Gmsh
 * http://gmsh.info/
 * https://gitlab.onelab.info/gmsh/gmsh
 * Netgen
 * https://ngsolve.org/
 * https://github.com/NGSolve/netgen

Meshing software operates on solid bodies that can be in different formats, like Step and Brep. These programs can be used independently of FreeCAD, and typically have many options to control the meshing algorithms, element size, and boundary conditions.

The FEM Workbench has developed simple communication interfaces to use Gmsh and Netgen directly inside FreeCAD. Other programs don't have an interface, but this could change in the future if there is interest from the community, and if those applications are easy to integrate. The meshing software can be compiled and distributed together with FreeCAD only if its license is compatible with the GPL2 or LGPL2 licenses; otherwise, the program has to be used as an external binary, like Gmsh is used.

Interface implemented in FreeCAD

 * Gmsh: main website, code repository
 * Netgen: main website, code repository

di interesse

 * ENigMA
 * https://forum.freecadweb.org/viewtopic.php?f=18&t=33048
 * https://github.com/bjaraujo/ENigMA
 * libMesh
 * https://forum.freecadweb.org/viewtopic.php?f=18&t=33621
 * http://libmesh.github.io/
 * https://github.com/libMesh/libmesh
 * Very active. C++ only
 * PythonOCC
 * http://www.pythonocc.org/
 * SnappyHexMesh
 * https://openfoamwiki.net/index.php/SnappyHexMesh
 * Tetgen
 * http://wias-berlin.de/software/tetgen/


 * ENigMA, forum thread, code repository
 * libMesh, main website, code repository, forum thread; it's a very active project, and it's C++ only
 * PythonOCC, main website
 * SnappyHexMesh, main website
 * Tetgen, main website

Elementi Mesh FEM in FreeCAD
FreeCAD supporta vari tipi di elementi. Questo blog esterno vi spiega le differenze tra i tipi di elementi e come utilizzarli: https://www.comsol.com/blogs/meshing-your-geometry-various-element-types/


 * "ni" significa formato non implementato in FreeCAD ma supportato.
 * "-" significa non supportato dall'interfaccia, quindi non è possibile supportarlo.
 * "?" non si sa se il formato supporta questo tipo di elemento

Generale
Maggiori informazioni sui tipi di elementi FEM e la loro struttura dei dati all'interno di FreeCAD si trovano nella pagina Tipi di elementi FEM.

More information on the elements, and their data structure inside FreeCAD can be found in FEM Element Types.

Creare una mesh con 10 nodi (Tet-10 Elements)
FreeCAD Scripting Basics.

The Python API allows the user to define a finite element mesh by directly adding individual nodes, and defining edges, faces, and volumes.

The mesh itself is of type, which needs to be attached to a proper document object of type.

Creating a mesh with one Tet-10 element
Create an empty FemMesh, populate it with nodes, create the volume, and finally call to create the document object with the corresponding mesh.

Se si desidera avere un elemento predefinito e la numerazione del nodo:

To create an actual document object, instead of you can also use the document  method; then attach the created mesh to this object's  attribute.

Manipolazione visiva
Evidenziare alcuni nodi nella vista:

Once a FemMesh object has been created with, some of its visual properties can be changed by modifying the different attributes of its. This can be useful to postprocess the mesh after a finite element solution has been obtained.

Highlight some nodes in the mesh

Post-elaborazione dei colori e della posizione:

Set volume 1 to red

Set nodes 1, 2 and 3 to a certain color; the faces between the nodes acquire an interpolated color

Displace the nodes 1 and 2 by the magnitude and direction defined by a vector

Double the factor of the displacement shown

Shell, 3 node triangle, tria3 (linear)
Add a face with the element number.

Shell, 6 node triangle, tria6 (quadratic)
Add a face with the element number.

Shell, 4 node quadrangle, quad4 (linear)
Add a face with the element number.

Shell, 8 node quadrangle, quad8 (quadratic)
Add a face with the element number.

Volume, 4 node tetrahedron, tetra4 (linear)
Add a volume with the element number.

Volume, 10 node tetrahedron, tetra10 (quadratic)
Add a volume with the element number.

Volume, 8 node hexahedron, hexa8 (linear)
Add a volume with the element number.

Volume, 20 node hexahedron, hexa20 (quadratic)
Add a volume with the element number.

Volume, 6 node pentahedron, penta6 (linear)
Add a volume with the element number.

Volume, 15 node pentahedron, penta15 (quadratic)
Add a volume with the element number.

Volume, 5 node pyramid, pyra5 (linear)
Add a volume with the element number.

Volume, 13 node pyramid, pyra13 (quadratic)
Add a volume with the element number.