FEM Shear of a Composite Block
| Topic |
|---|
| Finite Element Analysis |
| Level |
| Beginner/Intermediate |
| Time to complete |
| 30 minutes |
| Authors |
| HarryvL |
| FreeCAD version |
| 1.1 or above |
| Example files |
| None |
| See also |
| None |
Introduction
In this tutorial, we analyse the shear deformation of a composite block consisting of a stiff core embedded in a soft matrix. It demonstrates the use of BooleanFragments and CompoundFilter to create solids for the block and the matrix from two concentric cubes. This workflow ensures that separate MeshRegions, Materials and Boundary Conditions can be defined for the block and the surrounding matrix. To select internal regions, we can make use of the Clarify Selection tool, macro by Markus Hovorka or choose an alternative approach. The CalculiX results clearly show the effect of the stiff core on the response of the composite block.
Geometry
First, we create two concentric cubes, one size 10 mm and the other size 5 mm. This is done in the Part Workbench. By default, the cube is placed at the origin [0, 0, 0], so the smaller cube needs to be scaled down and shifted by changing the Position property within the Placement to (2.5,2.5,2.5). To make the core visible, the Transparency of the outer block is set to 50 in the View tab of the Property View. The result is shown below.
Next, highlight the two blocks in the tree and create a BooleanFragments object (Part → Split → Boolean Fragments). In the Data tab of the Property View, change Mode to CompSolid. Now highlight the BooleanFragments in the Tree View and create a CompoundFilter (Part → Compound → Compound Filter).
Mesh and Mesh Refinements
From the FEM workbench, we create an Analysis container. This will contain all definitions required for the CalculiX analysis and its results. If the Analysis container is not active (e.g. whenever reloading the file or after switching back from other analyses), it needs to be activated by right-clicking and selecting "Activate Analysis" or just double-clicking on it. To start the meshing process, highlight the CompoundFilter in the Tree View and activate the meshing dialog Mesh → Mesh From Shape by Gmsh. Leave the dialog by clicking OK.
A Mesh object is now created in the Object Tree. Highlight this object and create Mesh Refinement via Mesh → Mesh Refinement. Open the dialog box for the MeshRegion object by double-clicking on it in the Tree View and tick the radio button for Solid. Next, click the "Add" button and select the CompoundFilter object in the 3D View. This should add a reference to "CompoundFilter:Solid1" in the object list of the Mesh Refinement. Finally, specify the maximum element size for this region (5 mm in the current analysis). Leave the dialog by clicking OK.
Next, create a new MeshRegion object as explained above and use the Clarify Selection tool (hover over the center of the cube and press G,G) to select a face of the inner Cube_Core object in the 3D View. A pop-up window will ask which solid to pick. Choose Solid2 (inner cube). This time the reference list should show "CompoundFilter:Solid2", as below. We chose a maximum element size of 1 mm.
Note: If you have difficulty selecting "CompoundFilter:Solid2", it may be because you forgot to set the BooleanFragments mode to CompSolid.
Material Assignment
Material is assigned to model regions via a SolidMaterial object. In this tutorial, we assign two materials; one for the Matrix and one for the Core.
Create a MaterialSolid object via menu option Model → Materials → Solid Material. Open the dialog and tick the radio button for Solid, press "Add" and select the CompoundFilter object from the Graphical Window. The reference list should now show "CompoundFilter:Solid1", as before. We assign ABS material to the Matrix, with a Young's modulus approximately 1% of that of steel.
Repeat the above procedure for the Core ("CompoundFilter:Solid2") with the help of the Clarify Selection tool or an alternative approach. This time we assign CalculiX-Steel, which is much stiffer than the ABS material for the Matrix.
Sliding Support
To create a simple shear condition for the composite block, the deformations at the boundaries need to be unconstrained. To achieve this, the block is placed on a sliding support. This leaves three degrees of freedom in the plane of the support (2 translations and a rotation) and those will be constrained later. (Note: as the plane prevents warping of the face, it still induces a minor constraint, which could be eliminated by a different choice of boundary conditions). To create a sliding boundary condition, add a Displacement object (Model → Mechanical Boundary Conditions and Loads → Displacement Boundary Condition). With the dialog box open, click the Add button and select the face to which the boundary condition is to be applied. As the block is allowed to slide in the x-y plane, only the radio button for "Displacement Z" is selected, and the other radio buttons are all left unchecked.
Fixed Nodes
To prevent rigid body motion in the plane of sliding, three independent degrees of freedom need to be eliminated. To achieve this, one vertex in the plane of sliding is constrained in the x and y direction (eliminating 2 degrees of freedom) and one vertex is fixed in the x direction (eliminating the last degree of freedom). For this purpose, two additional Displacement objects are created and the result is shown below.
Shear Forces
The final step in the analysis definition is the application of loads. To create a simple shear condition, a set of shear loads is applied as shown below. Each load is chosen as 1000 N and considering the directions of application, force and moment equilibrium is achieved for all translation and rotational degrees of freedom. In FC, this requires the addition of four Force objects (Model → Mechanical Boundary Conditions and Loads → Force Load) - one for each face. With the dialog box open, first press the "Add" button and then select the face to which the boundary condition is to be applied. By default, this creates a set of forces perpendicular to the face (i.e. a normal force). To change this to a shear force, press the "Direction" button and select a cube edge that runs in the desired direction. If the resulting force points in the opposite direction of what is required, select the radio button for "Reverse direction".
CalculiX Analysis
Now that all mesh objects, material and boundary conditions have been defined, we are ready to analyse the deformation of the block with CalculiX. If the Analysis container is not active, activate it by double-clicking (or right-clicking and selecting "Activate Analysis"). Open the CalculiX dialog by double-clicking the SolverCalculiX object and click Apply to run the analysis.
If all goes well, the CCX output window should show the following messages.
CalculiX Results
Upon completion of the analysis, have a look at the "SolverCalculiXResult" object displaying the Displacement Magnitude by default. The maximum displacement of ~ 0.08 mm will show up in the relevant output box. As the maximum displacement is relatively small compared to the dimensions of the block (<1% of the block size), the displacements need to be scaled up for better visibility. This can be done by selecting the "SolverCalculiXResult" object and adding a Warp filter (Results → Warp Filter). Set the Warp factor to 20 and use the slider to visualize the scaled deformation. Set Field to Displacement.
To investigate the deformation of the core, we have to slice the block. With the "SolverCalculiXResult" pipeline selected, add a Clip Filter (Results → Region Clip Filter) and create a plane with origin [5.0,2.5,5.0] and normal [0,1,0], i.e. at a core face with normal in the y-direction. Tick the "Cut cells" radio button to create a flat surface. As before, set Field to "Displacement" to show colored displacement contours. Press Apply and OK. If needed, switch the Warp filter to invisible to only see the cut.
From the result, it is clear that the core remains largely undeformed and helps to resist the deformation of the soft matrix (compare the shear angle of the blue colored part to that of the green colored part). What it also highlights, though, is that under simple shear conditions the faces of the composite block do warp, implying that the sliding boundary condition at the base of the cube does provide an undue constraint.
Further work
The following challenges may be interesting to take up as a further exercise:
1) Correct for the undue constraint imposed by the sliding boundary condition
2) Try and create contact boundary conditions between the core and the matrix to see if separation occurs
The FC file for this tutorial is attached below as a starting point.
https://forum.freecad.org/viewtopic.php?f=18&t=26517&start=20
Have fun!
- Materials: Solid Material, Fluid Material, Non-Linear Mechanical Material, Reinforced Material (Concrete); Material Editor
- Element Geometry: Beam Cross Section, Beam Rotation, Shell Plate Thickness, Fluid Section for 1D Flow
- Electromagnetic Boundary Conditions: Electrostatic Potential Boundary Condition, Current Density Boundary Condition, Magnetization Boundary Condition, Electric Charge Density
- Fluid Boundary Conditions: Initial Flow Velocity Condition, Initial Pressure Condition, Flow Velocity Boundary Condition
- Geometrical Analysis Features: Plane Multi-Point Constraint, Section Print Feature, Local Coordinate System
- Mechanical Boundary Conditions and Loads: Fixed Boundary Condition, Rigid Body Constraint, Displacement Boundary Condition, Contact Constraint, Tie Constraint, Spring Boundary Condition, Force Load, Pressure Load, Centrifugal Load, Gravity Load
- Thermal Boundary Conditions and Loads: Initial Temperature, Heat Flux Load, Temperature Boundary Condition, Body Heat Source
- Overwrite Constants: Constant Vacuum Permittivity
- Mesh: Mesh From Shape by Netgen, Mesh From Shape by Gmsh, Mesh Boundary Layer, Mesh Refinement, Mesh Group, Erase Elements, FEM Mesh to Mesh
- 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
- Utilities: Clipping Plane on Face, Remove All Clipping Planes, FEM Examples; Clear FEM Mesh, Display Mesh Info
- Additional: Preferences; FEM Install, FEM Mesh, FEM Solver, FEM CalculiX, FEM Concrete; FEM Element Types
- 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