FEM Workbench/zh: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(51 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{docnav|[[Drawing Workbench|Drawing Workbench]]|[[Image Workbench|Image Workbench]]|IconL=Workbench_Drawing.svg|IconR=Workbench_Image.svg}}


{{Docnav
[[Image:Workbench_FEM.svg|64px]]
|[[Draft_Workbench|Draft Workbench]]
|[[Inspection_Workbench|Inspection Workbench]]
|IconL=Workbench_Draft.svg
|IconR=Workbench_Inspection.svg
}}

[[Image:Workbench_FEM.svg|thumb|128px|FEM workbench icon]]

{{TOCright}}


== Introduction ==
== Introduction ==


The [[FEM Module|FEM Workbench]] provides a modern finite element analysis (FEA) workflow for FreeCAD. Mainly this means all tools to make an analysis are combined into one graphical user interface (GUI).
The [[FEM_Workbench|FEM Workbench]] provides a modern [https://en.wikipedia.org/wiki/Finite_element_analysis finite element analysis] (FEA) workflow for FreeCAD. Mainly this means all tools to make an analysis are combined into one graphical user interface (GUI).


[[Image:FemWorkbench.jpg|300px]]
{{TOCright}}
[[Image:FemWorkbench.jpg]]


== Workflow ==
== Workflow ==
Line 17: Line 24:
## Modeling the geometry: creating the geometry with FreeCAD, or importing it from a different application.
## Modeling the geometry: creating the geometry with FreeCAD, or importing it from a different application.
## Creating an analysis.
## Creating an analysis.
### Adding simulation constraints such as loads and fixed supports to the geometric model.
### Adding materials to the parts of the geometric model.
### Creating a finite element mesh for the geometrical model, or importing it from a different application.
### Creating a finite element mesh for the geometrical model, or importing it from a different application.
# Solving: running an external solver from within FreeCAD.
### Adding simulation constraints such as loads and fixed supports to the model.
# Postprocessing: visualizing the analysis results from within FreeCAD, or exporting the results so they can be postprocessed with another application.
### Adding a material to the analysis model.
# Solving: solving a system of equations using an external solver from within FreeCAD.
# Postprocessing: visualizing the analysis results from within FreeCAD.


As of FreeCAD 0.15 the FEM Workbench can be used on Linux, Windows, and Mac OSX. Since the workbench makes use of external solvers, the amount of manual setup will depend on the operating system that you are using. See [[FEM Install|FEM Install]] for instructions on setting up the external tools.
The FEM Workbench can be used on Linux, Windows, and Mac OSX. Since the workbench makes use of external solvers, the amount of manual setup will depend on the operating system that you are using. See [[FEM Install|FEM Install]] for instructions on setting up the external tools.


[[Image:FEM_Workbench_workflow.svg|600px]]
[[Image:FEM_Workbench_workflow.svg|600px]]
Line 31: Line 38:
== Menu: Model ==
== Menu: Model ==


* [[Image:Fem-analysis.svg|32px]] [[FEM_Analysis|Analysis container]]: Creates a new container for a mechanical analysis. If a solid is selected in the tree view before clicking on it, the meshing dialog will be opened next.
* [[Image:FEM_Analysis.svg|32px]] [[FEM_Analysis|Analysis container]]: Creates a new container for a mechanical analysis. If a solid is selected in the tree view before clicking on it, the meshing dialog will be opened next.


=== Materials ===
=== Materials ===


* [[Image:Fem-material.svg|32px]] [[FEM_MaterialSolid|Material for solid]]: Lets you select a material from the database.
:* [[Image:FEM_MaterialSolid.svg|32px]] [[FEM_MaterialSolid|Material for solid]]: Lets you select a solid material from the database.


* [[Image:Fem-material-fluid.svg|32px]] [[FEM_MaterialFluid|Material for fluid]]: Lets you select a material from the database.
:* [[Image:FEM_MaterialFluid.svg|32px]] [[FEM_MaterialFluid|Material for fluid]]: Lets you select a fluid material from the database.


* [[Image:Fem-material-nonlinear.svg|32px]] [[FEM_MaterialMechanicalNonlinear|Nonlinear mechanical material]]: Lets you select a material from the database.
:* [[Image:FEM_MaterialMechanicalNonlinear.svg|32px]] [[FEM_MaterialMechanicalNonlinear|Nonlinear mechanical material]]: Lets you add a nonlinear mechanical material model.


* [[Image:Arch_Material_Group.svg|32px]] [[Material_editor|Material editor]]:: Lets you open the material editor to edit materials
:* [[Image:FEM_MaterialReinforced.svg|32px]] [[FEM_MaterialReinforced|Reinforced material (concrete)]]: Lets you select reinforced materials consisting of a matrix and a reinforcement from the database.

:* [[Image:FEM_MaterialEditor.svg|32px]] [[FEM_MaterialEditor|Material editor]]: Lets you open the material editor to edit materials.


=== Element Geometry ===
=== Element Geometry ===


* [[Image:Fem-beam-section.svg|32px]] [[FEM_ElementGeometry1D|Beam cross section]]:
:* [[Image:FEM_ElementGeometry1D.svg|32px]] [[FEM_ElementGeometry1D|Beam cross section]]: Used to define cross sections for beam elements.


* [[Image:Fem-beam-rotation.svg|32px]] [[FEM_ElementRotation1D|Beam rotation]]:
:* [[Image:FEM_ElementRotation1D.svg|32px]] [[FEM_ElementRotation1D|Beam rotation]]: Used to rotate cross sections of beam elements.


* [[Image:Fem-shell-thickness.svg|32px]] [[FEM_ElementGeometry2D|Shell plate thickness]]:
:* [[Image:FEM_ElementGeometry2D.svg|32px]] [[FEM_ElementGeometry2D|Shell plate thickness]]: Used to define shell element thickness.


* [[Image:Fem-fluid-section.svg|32px]] [[FEM_ElementFluid1D|Fluid section for 1D flow]]:
:* [[Image:FEM_ElementFluid1D.svg|32px]] [[FEM_ElementFluid1D|Fluid section for 1D flow]]: Used to create fluid section element for pneumatic and hydraulic networks.


=== <span id="FEM_CompEmConstraints">Electromagnetic boundary conditions</span><!--Do not edit span id: the FEM_CompEmConstraints pages redirect here--> ===
=== Electrostatic Constraints ===


* [[Image:fem-constraint-electrostatic-potential.svg|32px]] [[FEM_ConstraintElectrostaticPotential|Constraint electrostatic potential]]:
:* [[Image:FEM_ConstraintElectrostaticPotential.svg|32px]] [[FEM_ConstraintElectrostaticPotential|Electrostatic potential boundary condition]]: Used to define electrostatic potential.


:* [[Image:FEM_ConstraintCurrentDensity.svg|32px]] [[FEM_ConstraintCurrentDensity|Current density boundary condition]]: Used to define a current density. {{Version|0.21}}
=== Fluid constraints ===


:* [[Image:FEM_ConstraintMagnetization.svg|32px]] [[FEM_ConstraintMagnetization|Magnetization boundary condition]]: Used to define a magnetization. {{Version|0.21}}
* [[Image:Fem-constraint-initial-flow-velocity.svg|32px]] [[FEM_ConstraintInitialFlowVelocity|Constraint initial flow velocity]]:


=== Fluid boundary conditions ===
* [[Image:Fem-constraint-fluid-boundary.svg|32px]] [[FEM_ConstraintFluidBoundary|Constraint fluid boundary]]:


* [[Image:Fem-constraint-flow-velocity.svg|32px]] [[FEM_ConstraintFlowVelocity|Constraint flow velocity]]:
:* [[Image:FEM_ConstraintInitialFlowVelocity.svg|32px]] [[FEM_ConstraintInitialFlowVelocity|Initial flow velocity condition]]: Used to define an initial flow velocity for a body (volume).


:* [[Image:FEM_ConstraintInitialPressure.svg|32px]] [[FEM_ConstraintInitialPressure|Initial pressure condition]]: Used to define an initial pressure for a body (volume). {{Version|0.21}}
=== Mechanical constraints ===


* [[Image:Fem-constraint-fixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]: Used to define a fixed constraint on point/edge/face(s).
:* [[Image:FEM_ConstraintFlowVelocity.svg|32px]] [[FEM_ConstraintFlowVelocity|Flow velocity boundary condition]]: Used to define a flow velocity as a boundary condition at an edge (2D) or face (3D).


=== Geometrical analysis features ===
* [[Image:Fem-constraint-displacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]: Used to define a displacement constraint on point/edge/face(s).


* [[Image:Fem-constraint-planerotation.svg|32px]] [[FEM_ConstraintPlaneRotation|Constraint plane rotation]]: Used to define a plane rotation constraint on a planar face.
:* [[Image:FEM_ConstraintPlaneRotation.svg|32px]] [[FEM_ConstraintPlaneRotation|Plane multi-point constraint]]: Used to define a constraint for keeping the nodes in a planar surface in the same plane.


* [[Image:Fem-constraint-contact.svg|32px]] [[FEM_ConstraintContact|Constraint contact]]: Used to define a contact constraint between two faces.
:* [[Image:FEM_ConstraintSectionPrint.svg|32px]] [[FEM_ConstraintSectionPrint|Section print feature]]: Used to print the predefined facial output variables (forces and moments) to the data file.


* [[Image:Fem-constraint-transform.svg|32px]] [[FEM_ConstraintTransform|Constraint transform]]:
:* [[Image:FEM_ConstraintTransform.svg|32px]] [[FEM_ConstraintTransform|Local coordinate system]]: Used to define a transform constraint on a face.


=== Mechanical boundary conditions and loads ===
* [[Image:Fem-constraint-force.svg|32px]] [[FEM_ConstraintForce|Constraint force]]: Used to define a force in [N] applied uniformly to a selectable face in a definable direction.


* [[Image:Fem-constraint-pressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]: Used to define a pressure constraint.
:* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Fixed boundary condition]]: Used to define a fixed constraint on point/edge/face(s).


* [[Image:Fem-constraint-selfweight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]: Used to define a gravity acceleration acting on a model.
:* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Displacement boundary condition]]: Used to define a displacement constraint on point/edge/face(s).


* [[Image:Fem-constraint-bearing.svg|32px]] [[FEM_ConstraintBearing|Constraint bearing]]: Used to define a bearing constraint.
:* [[Image:FEM_ConstraintContact.svg|32px]] [[FEM_ConstraintContact|Contact constraint]]: Used to define a contact constraint between two faces.


* [[Image:Fem-constraint-gear.svg|32px]] [[FEM_ConstraintGear|Constraint gear]]: Used to define a gear constraint.
:* [[Image:FEM_ConstraintTie.svg|32px]] [[FEM_ConstraintTie|Tie constraint]]: Used to define a tie constraint ("bonded contact") between two faces, or, {{Version|0.22}}, cyclic symmetry.


* [[Image:Fem-constraint-pulley.svg|32px]] [[FEM_ConstraintPulley|Constraint pulley]]: Used to define a pulley constraint.
:* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Spring]]: Used to define a spring. {{Version|0.20}}


:* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Force load]]: Used to define a force in [N] applied uniformly to a selectable face in a definable direction.
=== Thermal constraints ===


* [[Image:Fem-constraint-InitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]: Used to define the initial temperature of a body.
:* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Pressure load]]: Used to define a pressure constraint.


* [[Image:Fem-constraint-heatflux.svg|32px]] [[FEM_ConstraintHeatflux|Constraint heatflux]]: Used to define a heat flux constraint on a face(s).
:* [[Image:FEM_ConstraintCentrif.svg|32px]] [[FEM_ConstraintCentrif|Centrifugal load]]: Used to define a centrifugal body load constraint. {{Version|0.20}}


* [[Image:Fem-constraint-temperature.svg|32px]] [[FEM_ConstraintTemperature|Constraint temperature]]: Used to define a temperature constraint on a point/edge/face(s).
:* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Gravity load]]: Used to define a gravity acceleration acting on a model.


=== Thermal boundary conditions and loads ===
* [[Image:Fem-constraint-heatflux.svg|32px]] [[FEM_ConstraintBodyHeatSource|Constraint body heat source]]:


:* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Initial temperature]]: Used to define the initial temperature of a body.
== Menu: Mesh ==


:* [[Image:FEM_ConstraintHeatflux.svg|32px]] [[FEM_ConstraintHeatflux|Heat flux load]]: Used to define a heat flux constraint on a face(s).
* [[Image:Fem-femmesh-netgen-from-shape.svg|32px]] [[FEM_MeshNetgenFromShape|FEM mesh from shape by Netgen]]:


:* [[Image:FEM_ConstraintTemperature.svg|32px]] [[FEM_ConstraintTemperature|Temperature boundary condition]]: Used to define a temperature constraint on a point/edge/face(s).
* [[Image:Fem-femmesh-gmsh-from-shape.svg|32px]] [[FEM_MeshGmshFromShape|FEM mesh from shape by GMSH]]:


:* [[Image:FEM_ConstraintBodyHeatSource.svg|32px]] [[FEM_ConstraintBodyHeatSource|Body heat source]]: Used to define an internally generated body heat.
* [[Image:Fem-femmesh-boundary-layer.svg|32px]] [[FEM_MeshBoundaryLayer|FEM mesh boundary layer]]:


=== Overwrite Constants ===
* [[Image:Fem-femmesh-region.svg|32px]] [[FEM_MeshRegion|FEM mesh region]]:


:* [[Image:FEM_ConstantVacuumPermittivity.svg|32px]] [[FEM_ConstantVacuumPermittivity|Constant vacuum permittivity]]: Used to overwrite the [https://en.wikipedia.org/wiki/Vacuum_permittivity permittivity of vacuum] with a custom value.
* [[Image:Fem-femmesh-from-shape.svg|32px]] [[FEM_MeshGroup|FEM mesh group]]:


== Menu: Mesh ==
* [[Image:Fem-femmesh-create-node-by-poly.svg|32px]] [[FEM_CreateNodesSet|Nodes set]]: Creates/defines a node set from FEM mesh.

* [[Image:FEM_MeshNetgenFromShape.svg|32px]] [[FEM_MeshNetgenFromShape|FEM mesh from shape by Netgen]]: Generates a finite element mesh for a model using Netgen.

* [[Image:FEM_MeshGmshFromShape.svg|32px]] [[FEM_MeshGmshFromShape|FEM mesh from shape by Gmsh]]: Generates a finite element mesh for a model using Gmsh.

* [[Image:FEM_MeshBoundaryLayer.svg|32px]] [[FEM_MeshBoundaryLayer|FEM mesh boundary layer]]: Creates anisotropic meshes for accurate calculations near boundaries.

* [[Image:FEM_MeshRegion.svg|32px]] [[FEM_MeshRegion|FEM mesh region]]: Creates a localized area(s) to mesh which highly optimizes analysis time.

* [[Image:FEM_MeshGroup.svg|32px]] [[FEM_MeshGroup|FEM mesh group]]: Groups and labels elements of a mesh (vertex, edge, surface) together, useful for exporting the mesh to external solvers.


* [[Image:Fem-femmesh-to-mesh.svg|32px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]]: Convert the surface of a FEM mesh to a mesh.
* [[Image:FEM_FemMesh2Mesh.svg|32px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]]: Convert the surface of a FEM mesh to a mesh.


== Menu: Solve ==
== Menu: Solve ==


* [[Image:Fem-solver.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver Calculix CCX tools]]: Creates a new solver for this analysis. In most cases the solver is created together with the analysis.
* [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]: Creates a new solver for this analysis.


* [[Image:Fem-solver.svg|32px]] [[FEM_SolverCalculiX|Solver CalculiX]]:
* [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]]: Creates the solver controller for Elmer.


* [[Image:Fem-elmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]]:
* [[Image:FEM_SolverMystran.svg|32px]] [[FEM_SolverMystran|Solver Mystran]]: Creates the solver controller for the MYSTRAN solver. {{Version|0.20}}


* [[Image:Fem-solver.svg|32px]] [[FEM_SolverZ88|Solver Z88]]:
* [[Image:FEM_SolverZ88.svg|32px]] [[FEM_SolverZ88|Solver Z88]]: Creates the solver controller for Z88.


=== <span id="FEM_CompMechEquations">Mechanical equations</span><!--Do not edit span id: the FEM_CompMechEquations pages redirect here--> ===
* [[Image:Fem-equation-heat.svg|32px]] [[FEM_EquationHeat|Equation heat]]:


* [[Image:Fem-equation-elasticity.svg|32px]] [[FEM_EquationElasticity|Equation elasticity]]:
:* [[Image:FEM_EquationElasticity.svg|32px]] [[FEM_EquationElasticity|Elasticity equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform linear mechanical analyses.


:* [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform nonlinear mechanical analyses (deformations). {{Version|0.21}}
* [[Image:Fem-equation-electrostatic.svg|32px]] [[FEM_EquationElectrostatic|Equation electrostatic]]:


=== <span id="FEM_CompEmEquations">Electromagnetic equations</span><!--Do not edit span id: the FEM_CompEmEquations pages redirect here--> ===
* [[Image:Fem-equation-fluxsolver.svg|32px]] [[FEM_EquationFluxsolver|Equation fluxsolver]]:


:* [[Image:FEM_EquationElectrostatic.svg|32px]] [[FEM_EquationElectrostatic|Electrostatic equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform electrostatic analyses.
* [[Image:Fem-equation-flow.svg|32px]] [[FEM_EquationFlow|Equation flow]]:


:* [[Image:FEM_EquationElectricforce.svg|32px]] [[FEM_EquationElectricforce|Electricforce equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate the electric force on surfaces.
* [[Image:Fem-control-solver.svg|32px]] [[FEM_SolverControl|Solver job control]]: Opens the menu to adjust and start the selected solver.


:* [[Image:FEM_EquationMagnetodynamic.svg|32px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate magnetodynamics. {{Version|0.21}}
* [[Image:Fem-run-solver.svg|32px]] [[FEM_SolverRun|Solver run calculation]]: Runs the selected solver of the active analysis.

:* [[Image:FEM_EquationMagnetodynamic2D.svg|32px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate magnetodynamics in 2D. {{Version|0.21}}

* [[Image:FEM_EquationFlow.svg|32px]] [[FEM_EquationFlow|Flow equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform flow analyses.

* [[Image:FEM_EquationFlux.svg|32px]] [[FEM_EquationFlux|Flux equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform flux analyses.

* [[Image:FEM_EquationHeat.svg|32px]] [[FEM_EquationHeat|Heat equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform heat transfer analyses.

* [[Image:FEM_SolverControl.svg|32px]] [[FEM_SolverControl|Solver job control]]: Opens the menu to adjust and start the selected solver.

* [[Image:FEM_SolverRun.svg|32px]] [[FEM_SolverRun|Run solver calculations]]: Runs the selected solver of the active analysis.


== Menu: Results ==
== Menu: Results ==


* [[Image:Fem-purge-results.svg|32px]] [[FEM_ResultsPurge|Results purge]]: Deletes the results of the active analysis.
* [[Image:FEM_ResultsPurge.svg|32px]] [[FEM_ResultsPurge|Purge results]]: Deletes the results of the active analysis.


* [[Image:Fem-result.svg|24px]] [[FEM_ResultShow|Result show]]: Used to display the result of an analysis.
* [[Image:FEM_ResultShow.svg|24px]] [[FEM_ResultShow|Show result]]: Used to display the result of an analysis. This dialog is not available for the [[FEM_SolverElmer|Solver Elmer]] as this solver visualizes using the [[FEM_PostPipelineFromResult|Post pipeline from result]] object only.


* [[Image:FEM_PostApplyChanges.png|32px]] [[FEM_PostApplyChanges|Post Apply changes]]:
* [[Image:FEM_PostApplyChanges.svg|32px]] [[FEM_PostApplyChanges|Apply changes to pipeline]]: Toggles if changes to pipelines and filters are applied immediately.


* [[Image:Fem-data.svg|32px]] [[FEM_PostPipelineFromResult|Post Pipeline from result]]:
* [[Image:FEM_PostPipelineFromResult.svg|32px]] [[FEM_PostPipelineFromResult|Post pipeline from result]]: Used to add a new graphical representation of FEM analysis results (color scale and more display options).


* [[Image:Fem-warp.svg|32px]] [[FEM_PostCreateWarpVectorFilter|Post Create warp vector filter]]:
* [[Image:FEM_PostFilterWarp.svg|32px]] [[FEM_PostFilterWarp|Warp filter]]: Used to visualize the scaled deformed shape of the model.


* [[Image:Fem-clip-scalar.svg|32px]] [[FEM_PostCreateScalarClipFilter|Post Create scalar clip filter]]:
* [[Image:FEM_PostFilterClipScalar.svg|32px]] [[FEM_PostFilterClipScalar|Scalar clip filter]]: Used to clip a field with a specified scalar value.


* [[Image:Fem-cut.svg|32px]] [[FEM_PostCreateCutFilter|Post Create cut filter]]:
* [[Image:FEM_PostFilterCutFunction.svg|32px]] [[FEM_PostFilterCutFunction|Function cut filter]]: Used to display the results on a sphere or a plane cutting through the model.


* [[Image:Fem-clip.svg|32px]] [[FEM_PostCreateClipFilter|Post Create clip filter]]:
* [[Image:FEM_PostFilterClipRegion.svg|32px]] [[FEM_PostFilterClipRegion|Region clip filter]]: Used to clip a field with a sphere or a plane cutting through the model.


* [[Image:FEM_PostFilterContours.svg|32px]] [[FEM_PostFilterContours|Contours filter]]: Used to display iso-lines (for analyses in 2D) or iso-contours. {{Version|0.21}}
* [[Image:Fem-DataAlongLine.svg|32px]] [[FEM_PostCreateDataAlongLineFilter|Post Create data along line filter]]:


* [[Image:FEM_PostFilterDataAlongLine.svg|32px]] [[FEM_PostFilterDataAlongLine|Line clip filter]]: Used to plot the values of a field along a specified line.
* [[Image:Fem-linearizedstresses.svg|32px]] [[FEM_PostCreateLinearizedStressesFilter|Post Create linearized stresses]]:


* [[Image:FEM_PostFilterLinearizedStresses.svg|32px]] [[FEM_PostFilterLinearizedStresses|Stress linearization plot]]: Creates a stress linearization plot.
* [[Image:fem-post-filter-data-at-point.png|32px]] [[FEM_PostCreateDataAtPointFilter|Post Create data at point filter]]:


* [[Image:FEM_PostFilterDataAtPoint.svg|32px]] [[FEM_PostFilterDataAtPoint|Data at point clip filter]]: Used to display value of a selected field at a given point.
* [[Image:Fem CompPostCreateFunctions.png|48px]] [[FEM_PostCreateFunctions|Post Create functions]]:

** [[Image:Fem-sphere.svg|32px]] :
=== <span id="FEM_PostCreateFunctions">Filter functions</span><!--Do not edit span id: the FEM_PostCreateFunctions pages redirect here--> ===
** [[Image:Fem-plane.svg|32px]] :

:* [[Image:FEM_PostCreateFunctionPlane.svg|32px]] [[FEM_PostCreateFunctionPlane|Plane]]: Cuts the result mesh with a plane.

:* [[Image:FEM_PostCreateFunctionSphere.svg|32px]] [[FEM_PostCreateFunctionSphere|Sphere]]: Cuts the result mesh with a sphere.

:* [[Image:FEM_PostCreateFunctionCylinder.svg|32px]] [[FEM_PostCreateFunctionCylinder|Cylinder]]: Cuts the result mesh with a cylinder. {{Version|0.21}}

:* [[Image:FEM_PostCreateFunctionBox.svg|32px]] [[FEM_PostCreateFunctionBox|Box]]: Cuts the result mesh with a box. {{Version|0.21}}


== Menu: Utilities ==
== Menu: Utilities ==


* [[Image:fem-clipping-plane-add.svg|32px]] [[FEM_ClippingPlaneAdd|Clipping plane on face]]:
* [[Image:FEM_ClippingPlaneAdd.svg|32px]] [[FEM_ClippingPlaneAdd|Clipping plane on face]]: Adds a clipping plane for the whole model view.


* [[Image:fem-clipping-plane-remove-all.svg|32px]] [[FEM_ClippingPlaneRemoveAll|Remove all clipping planes]]:
* [[Image:FEM_ClippingPlaneRemoveAll.svg|32px]] [[FEM_ClippingPlaneRemoveAll|Remove all clipping planes]]: Removes all existing [[FEM_ClippingPlaneAdd|clipping planes]].

* [[Image:FEM_Examples.svg|32px]] [[FEM_Examples|Open FEM examples]]: Open the GUI to access FEM examples.


== Context Menu ==
== Context Menu ==


* [[Image:Fem-femmesh-clear-mesh.svg|32px]] [[FEM_MeshClear|FEM mesh clear]]:
* [[Image:FEM_MeshClear.svg|32px]] [[FEM_MeshClear|Clear FEM mesh]]: Deletes the mesh file from the FreeCAD file. Useful to make a FreeCAD file lighter.

* [[Image:FEM_MeshDisplayInfo.svg|32px]] [[FEM_MeshDisplayInfo|Display FEM mesh info]]: Displays basic statistics of existing mesh - number of nodes and elements of each type.

== Obsolete tools ==

* [[Image:FEM_ConstraintFluidBoundary.svg|32px]] [[FEM_ConstraintFluidBoundary|Fluid boundary condition]]: Used to define a fluid boundary condition. Did not have a solver. Not available in {{VersionPlus|0.22}}.

* [[Image:FEM_ConstraintBearing.svg|32px]] [[FEM_ConstraintBearing|Constraint bearing]]: Used to define a bearing constraint. Did not have a solver. Not available in {{VersionPlus|0.22}}.

* [[Image:FEM_ConstraintGear.svg|32px]] [[FEM_ConstraintGear|Constraint gear]]: Used to define a gear constraint. Did not have a solver. Not available in {{VersionPlus|0.22}}.

* [[Image:FEM_ConstraintPulley.svg|32px]] [[FEM_ConstraintPulley|Constraint pulley]]: Used to define a pulley constraint. Did not have a solver. Not available in {{VersionPlus|0.22}}.

* [[Image:FEM_SolverCalculiX.svg|32px]] [[FEM_SolverCalculiX|Solver CalculiX (new framework)]]: Same as the original framework [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]] with extra checks. Tool was unfinished. Not available in {{VersionPlus|0.22}}.


* [[Image:FEM_CreateNodesSet.svg|32px]] [[FEM_CreateNodesSet|Nodes set]]: Creates/defines a node set from FEM mesh. Tool was unfinished and couldn't be used. Not available in {{VersionPlus|0.22}}.
* [[Image:Fem-femmesh-print-info.svg|32px]] [[FEM_MeshPrintInfo|FEM mesh print info]]:


== Preferences ==
== Preferences ==


* [[Image:Std_DlgParameter.svg|32px]] [[Fem_Preferences|Preferences...]]: Preferences available in FEM Tools.
* [[Image:Std_DlgPreferences.svg|32px]] [[FEM_Preferences|Preferences...]]: Preferences available in FEM Tools.

== Information ==

The following pages explain different topics of the FEM Workbench.

[[FEM_Install|FEM Install]]: a detailed description on how to set up the external programs used in the workbench.

[[FEM_Geometry_Preparation_and_Meshing|FEM Geometry Preparation and Meshing]]: tips regarding geometry preparation for FEM and meshing.

[[FEM_Mesh|FEM Mesh]]: details about meshes in the FEM workbench.

[[FEM_Solver|FEM Solver]]: further information on the different solvers available in the workbench, and those that could be used in the future.

[[FEM_CalculiX|FEM CalculiX]]: further information on CalculiX, the default solver used in the workbench for structural analysis.

[[FEM_Concrete|FEM Concrete]]: interesting information on the topic of simulating concrete structures.


== Tutorials ==
== Tutorials ==
Tutorial 1 [[FEM_CalculiX_Cantilever_3D | FEM CalculiX Cantilever 3D]]


Tutorial 1: [[FEM_CalculiX_Cantilever_3D|FEM CalculiX Cantilever 3D]]; basic simply supported beam analysis.
Tutorial 2 [[FEM_tutorial | FEM Tutorial]]


Tutorial 3 [[FEM_Tutorial_Python | FEM Tutorial Python]]
Tutorial 2: [[FEM_tutorial|FEM Tutorial]]; simple tension analysis of a structure.


Tutorial 3: [[FEM_Tutorial_Python|FEM Tutorial Python]]; set up the cantilever example entirely through scripting in Python, including the mesh.
Tutorial 4 [[FEM Shear of a Composite Block|FEM Shear of a Composite Block]]


Tutorial 4: [[FEM Shear of a Composite Block|FEM Shear of a Composite Block]]; see the deformation of a block that is comprised of two materials.
Coupled thermal mechanical analysis tutorials [https://opensimsa.github.io/training.html PDF's]


Tutorial 5: [[Transient_FEM_analysis|Transient FEM analysis]]
Video Tutorial 1 [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499#p158353 Forum post with you tube link]


Tutorial 6: [[Post-Processing_of_FEM_Results_with_Paraview|Post-Processing of FEM Results with Paraview]]
Video Tutorial 2 [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499&start=10#p162321 Forum post with you tube link]


Tutorial 7: [[FEM_Example_Capacitance_Two_Balls|FEM Example Capacitance Two Balls]]; Elmer's GUI tutorial 6 "Electrostatics Capacitance Two Balls" using FEM Examples.
Further video Tutorials [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499&start=10#p162640 Forum post with you tube link]


Coupled thermal mechanical analysis tutorials by [https://opensimsa.github.io/training.html openSIM]
* [[Extend_FEM_Module|Extend FEM Module]]
** [[Add_FEM_Equation_Tutorial|Add FEM Equation Tutorial]]
** [[Add_FEM_Constraint_Tutorial|Add FEM Constraint Tutorial]]


Video tutorial 1: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499#p158353 FEM video for beginner] (including YouTube link)
== Links ==
[[FEM_Install|FEM Install]] for a detailed description how to set up a working FEM Module.


Video tutorial 2: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499&start=10#p162321 FEM video for beginner] (including YouTube link)
[[FEM_Mesh|FEM Mesh]] for further Information about the FEM Mesh in FEM Module.


Many video tutorials: [https://www.youtube.com/channel/UCnvFCm2BbXOVI3ObfXcxXhw anisim Open Source Engineering Software] (in German)
[[FEM_Solver| FEM Solver]] for further Informations about FEM Solvers in FEM Module,


== Extending the FEM Workbench ==
[[FEM_CalculiX|FEM CalculiX]] for further Information about CalculiX, the most used and best develop solver in FEM Module.

The FEM Workbench is under constant development. An objective of the project is to find ways to easily interact with various FEM solvers, so that the end user can streamline the process of creating, meshing, simulating, and optimizing an engineering design problem, all within FreeCAD.

The following information is aimed at power users and developers who want to extend the FEM Workbench in different ways. Familiarity with C++ and Python is expected, and also some knowledge of the "document object" system used in FreeCAD is necessary; this information is available in the [[Power_users_hub|Power users hub]] and the [[Developer_hub|Developer hub]]. Please notice that since FreeCAD is under active development, some articles may be too old, and thus obsolete. The most up to date information is discussed in the [https://forum.freecadweb.org/index.php FreeCAD forums], in the Development section. For FEM discussions, advice or assistance in extending the workbench, the reader should refer to the [https://forum.freecadweb.org/viewforum.php?f=18 FEM subforum].

The following articles explain how the workbench can be extended, for example, by adding new types of boundary conditions (constraints), or equations.
* [[Extend_FEM_Module|Extend FEM Module]]
* [[Onboarding_FEM_Devs|Onboarding FEM Devs]] attempts to orient new devs on how to contribute to the FEM workbench.
* [[Add_FEM_Constraint_Tutorial|Add FEM Constraint Tutorial]]
* [[Add_FEM_Equation_Tutorial|Add FEM Equation Tutorial]]


A developer's guide has been written to help power users in understanding the complex FreeCAD codebase and the interactions between the core elements and the individual workbenches. The book is hosted at github so multiple users can contribute to it and keep it updated.
[[FEM_project|FEM Project]] for more detailed informations about the Units, Limitations and the Development of FEM Module.
* [https://forum.freecadweb.org/viewtopic.php?t=17581 Early preview of ebook: Module developer' guide to FreeCAD source] forum thread.
* [https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide FreeCAD Mod Dev Guide] github repository.


== Extending the FEM Workbench documentation ==
[[FEM_Concrete|FEM Concrete]] for informations about analysis's of concrete structures.


* More information regarding extending or missing FEM documentation can be found in the forum: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20823 FEM documentation missing on the Wiki]
{{docnav|[[Drawing Workbench|Drawing Workbench]]|[[Image Workbench|Image Workbench]]|IconL=Workbench_Drawing.svg|IconR=Workbench_Image.svg}}


{{FEM Tools navi}}


{{Docnav
{{Userdocnavi}}
|[[Draft_Workbench|Draft Workbench]]
|[[Inspection_Workbench|Inspection Workbench]]
|IconL=Workbench_Draft.svg
|IconR=Workbench_Inspection.svg
}}


{{FEM Tools navi{{#translation:}}}}
[[Category:Workbenches]]
{{Userdocnavi{{#translation:}}}}
[[Category:Workbenches{{#translation:}}]]

Latest revision as of 10:16, 2 March 2024

FEM workbench icon

Introduction

The FEM Workbench provides a modern finite element analysis (FEA) workflow for FreeCAD. Mainly this means all tools to make an analysis are combined into one graphical user interface (GUI).

Workflow

The steps to carry out a finite element analysis are:

  1. Preprocessing: setting up the analysis problem.
    1. Modeling the geometry: creating the geometry with FreeCAD, or importing it from a different application.
    2. Creating an analysis.
      1. Adding simulation constraints such as loads and fixed supports to the geometric model.
      2. Adding materials to the parts of the geometric model.
      3. Creating a finite element mesh for the geometrical model, or importing it from a different application.
  2. Solving: running an external solver from within FreeCAD.
  3. Postprocessing: visualizing the analysis results from within FreeCAD, or exporting the results so they can be postprocessed with another application.

The FEM Workbench can be used on Linux, Windows, and Mac OSX. Since the workbench makes use of external solvers, the amount of manual setup will depend on the operating system that you are using. See FEM Install for instructions on setting up the external tools.

Workflow of the FEM Workbench; the workbench calls two external programs to perform meshing of a solid object, and perform the actual solution of the finite element problem

Menu: Model

  • Analysis container: Creates a new container for a mechanical analysis. If a solid is selected in the tree view before clicking on it, the meshing dialog will be opened next.

Materials

Element Geometry

Electromagnetic boundary conditions

Fluid boundary conditions

Geometrical analysis features

  • Section print feature: Used to print the predefined facial output variables (forces and moments) to the data file.

Mechanical boundary conditions and loads

  • Force load: Used to define a force in [N] applied uniformly to a selectable face in a definable direction.
  • Gravity load: Used to define a gravity acceleration acting on a model.

Thermal boundary conditions and loads

Overwrite Constants

Menu: Mesh

  • FEM mesh region: Creates a localized area(s) to mesh which highly optimizes analysis time.
  • FEM mesh group: Groups and labels elements of a mesh (vertex, edge, surface) together, useful for exporting the mesh to external solvers.

Menu: Solve

  • Solver Z88: Creates the solver controller for Z88.

Mechanical equations

Electromagnetic equations

Menu: Results

  • Post pipeline from result: Used to add a new graphical representation of FEM analysis results (color scale and more display options).
  • Warp filter: Used to visualize the scaled deformed shape of the model.
  • Function cut filter: Used to display the results on a sphere or a plane cutting through the model.
  • Region clip filter: Used to clip a field with a sphere or a plane cutting through the model.

Filter functions

  • Plane: Cuts the result mesh with a plane.
  • Sphere: Cuts the result mesh with a sphere.

Menu: Utilities

Context Menu

  • Clear FEM mesh: Deletes the mesh file from the FreeCAD file. Useful to make a FreeCAD file lighter.
  • Display FEM mesh info: Displays basic statistics of existing mesh - number of nodes and elements of each type.

Obsolete tools

  • Fluid boundary condition: Used to define a fluid boundary condition. Did not have a solver. Not available in version 0.22 and above.
  • Constraint bearing: Used to define a bearing constraint. Did not have a solver. Not available in version 0.22 and above.
  • Constraint gear: Used to define a gear constraint. Did not have a solver. Not available in version 0.22 and above.
  • Constraint pulley: Used to define a pulley constraint. Did not have a solver. Not available in version 0.22 and above.
  • Nodes set: Creates/defines a node set from FEM mesh. Tool was unfinished and couldn't be used. Not available in version 0.22 and above.

Preferences

Information

The following pages explain different topics of the FEM Workbench.

FEM Install: a detailed description on how to set up the external programs used in the workbench.

FEM Geometry Preparation and Meshing: tips regarding geometry preparation for FEM and meshing.

FEM Mesh: details about meshes in the FEM workbench.

FEM Solver: further information on the different solvers available in the workbench, and those that could be used in the future.

FEM CalculiX: further information on CalculiX, the default solver used in the workbench for structural analysis.

FEM Concrete: interesting information on the topic of simulating concrete structures.

Tutorials

Tutorial 1: FEM CalculiX Cantilever 3D; basic simply supported beam analysis.

Tutorial 2: FEM Tutorial; simple tension analysis of a structure.

Tutorial 3: FEM Tutorial Python; set up the cantilever example entirely through scripting in Python, including the mesh.

Tutorial 4: FEM Shear of a Composite Block; see the deformation of a block that is comprised of two materials.

Tutorial 5: Transient FEM analysis

Tutorial 6: Post-Processing of FEM Results with Paraview

Tutorial 7: FEM Example Capacitance Two Balls; Elmer's GUI tutorial 6 "Electrostatics Capacitance Two Balls" using FEM Examples.

Coupled thermal mechanical analysis tutorials by openSIM

Video tutorial 1: FEM video for beginner (including YouTube link)

Video tutorial 2: FEM video for beginner (including YouTube link)

Many video tutorials: anisim Open Source Engineering Software (in German)

Extending the FEM Workbench

The FEM Workbench is under constant development. An objective of the project is to find ways to easily interact with various FEM solvers, so that the end user can streamline the process of creating, meshing, simulating, and optimizing an engineering design problem, all within FreeCAD.

The following information is aimed at power users and developers who want to extend the FEM Workbench in different ways. Familiarity with C++ and Python is expected, and also some knowledge of the "document object" system used in FreeCAD is necessary; this information is available in the Power users hub and the Developer hub. Please notice that since FreeCAD is under active development, some articles may be too old, and thus obsolete. The most up to date information is discussed in the FreeCAD forums, in the Development section. For FEM discussions, advice or assistance in extending the workbench, the reader should refer to the FEM subforum.

The following articles explain how the workbench can be extended, for example, by adding new types of boundary conditions (constraints), or equations.

A developer's guide has been written to help power users in understanding the complex FreeCAD codebase and the interactions between the core elements and the individual workbenches. The book is hosted at github so multiple users can contribute to it and keep it updated.

Extending the FEM Workbench documentation