Tutorial
|
| Topic
|
| Transient FEM analysis
|
| Level
|
|
|
| Time to complete
|
|
|
| Authors
|
|
|
| FreeCAD version
|
|
|
| Example files
|
|
|
| See also
|
| None
|
|
Introduction
This example shows how to perform a transient thermomechanical analysis of a bimetallic strip.
Creating the model
- Starting with a blank FreeCAD project, we build our bimetal strip in the
Part Workbench
- Draw a
Cube and rename it to aluminium.
- Give it the dimensions 100 x 10 x 2 mm (Length x Width x Height).
- Create a second Cube named 'steel' with the same dimensions.
- Offset this part by 2 mm along the Z-axis (via Placement → Position → z).
- Select both solids (using the Shift key + mouse click) and create
Boolean Fragments from them
- Rename these Boolean Fragments to
bimetal strip
- In the Property editor, we change the mode from ViewStandard to ViewCompSolid. (It should also work by using the Part Compound command instead of
Boolean Fragments, however, with more complex intersecting shapes, there might be trouble with the FEM analysis later. So, better get used to using Boolean Fragments in the first place.) The result should look like this:
Preparing and running the FEM analysis
Assigning the materials
In the FEM workbench we create a new
Analysis container and add a new
Solid Material named 'Aluminium' to the analysis. In the upcoming task window, we select one of the predefined aluminium alloys such as "Aluminum-6061-T6". Under 'Geometry Reference Selector', we assign the material to the lower strip of our model by setting the selection mode to 'Solid', clicking 'Add' and selecting a face or an edge of the lower strip.
We close the task window and repeat the steps to create a second material 'Steel' (material card 'CalculiX-Steel') and assign it to the top strip.
Creating the mesh
Since a Finite Element Analysis obviously needs elements to work with, we have to dissect our model into a so-called mesh. The FEM workbench offers two meshing tools: Netgen and GMSH. We will go with Netgen here: With the Boolean Fragments objects 'bimetal strip' selected, we click on the
Netgen icon in the FEM workbench. In the upcoming task window, we have to make different selections, starting from the top:
- Fineness: select, how finely the model should be cut into elements. For more complex models with curvatures and intersections, we can increase the element number in those regions to get better results (at the cost of more computing time, of course). Expert users can also set it to User-defined and set the following parameters. For our simple rectangular model, the fineness selection has not much of an impact, we keep it at moderate level.
- Maximum size: this is the maximum size (in millimetres) of an element. The smaller the maximum element size, the more elements we get – usually the result will get more precise, but with a dramatic increase in computing time. We set it to 2.
- Second order: means, that in each element, additional nodes will be created. This increases computing time, but is usually a good choice if it comes to bending as in our analysis. We leave it checked.
A click on 'Apply' runs the mesher, and – the time depending on your computer – a mesh appears on our model.
Assigning boundary conditions
An FEM analysis now would result in nothing, because nothing is happening to our model yet. So let’s add some temperature: Use the
initial temperature from the FEM workbench and set the temperature to 300 K. Here, no parts of the model will be selected, since this setting applies to the complete model.
Next, we use
temperature acting on a face. We click 'Add' in the Task panel and select the two faces at one end of the strip. Two faces of the Boolean Fragments object should appear in the list and little temperature icons on the model. We set the temperature to 400 K and close the Task panel. At the beginning of the analysis, the selected faces will get an instantaneous temperature rise from 300 to 400 K. The heat will be conducted along the metal strips and cause the bending of the strip.
Before we can run the analysis, an additional boundary condition has to be set: The analysis can only run, if our model is fixed somewhere in space. With
we select the same two faces as for the temperature boundary condition above. Red bars will appear on the model, visualising that those faces are fixed in space and not able to move around during the analysis.
Running the analysis
The analysis may already contain a solver object 'SolverCalculiX'. If not, we add one by using the
solver icon from the toolbar. The solver object has a list of properties below in the left section of the window. Here we select the following options (leave the ones unmentioned unchanged):
- Analysis Type: We want to run a thermomechanical analysis. Other options could be only static (no temperature effects), frequency (vibrations), or only to check the model validity.
- Thermo Mech Steady State: Steady state means, the solver will return one single result with the physics reaching equilibrium. We do NOT want to do that, we would like to get multiple, time-resolved results (transient analysis). So disable it.
- Time Period: We would like to simulate 60 s of the process.
After double-clicking the solver object, we check that 'thermomech' is selected and click 'Apply' to start calculations. After some time, the last message 'Process finished' should appear. When the timer at the bottom has stopped, we close the Task panel. (With larger models and/or slower computers, FreeCAD may freeze and we won’t see the timer running. But be patient, in most of the cases, CalculiX is still running in the background and will eventually produce results.)
We should now have a "SolverCalculiXResult"
pipeline object with multiple frames. By default, temperature distribution should be shown. We can double-click on the pipeline and switch to Displacement Magnitude. Then we can add Warp Filter to visualize scaled deformation. Alternatively, we could export the results in the VTK format and import them into dedicated post-processor such as ParaView.
Downloads
Other Example
- Analytical bimetall example. The analytical example presented in the forum is included in FreeCAD FEM examples. It can be started by Python with:
from femexamples.thermomech_bimetall import setup
setup()
FEM
- Solve: Solver CalculiX, Solver Elmer, Solver Mystran, Solver Z88; Mechanical Equations: Elasticity Equation, Deformation Equation; Electromagnetic Equations: Electrostatic Equation, Electricforce Equation, Magnetodynamic Equation, Magnetodynamic 2D Equation, Static Current Equation; Flow Equation, Flux Equation, Heat Equation, Solver Job Control, Run Solver
- Results: Purge Results, Show Result, Apply Changes to Pipeline, Post Pipeline From Result, Pipeline Branch, Warp Filter, Scalar Clip Filter, Function Cut Filter, Region Clip Filter, Contours Filter, Glyph Filter, Line Clip Filter, Stress Linearization Plot, Data at Point Clip Filter, Calculator Filter; Filter Functions: Plane, Sphere, Cylinder, Box; Data Visualizations: Create Lineplot, Create Histogram, Create Table
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