This tutorial walks through a complete linear static analysis of the front lower control arm of an off-road cross kart under braking. The loads come from a full-vehicle Abaqus model. The component model is built in ANSA, solved in Abaqus/Standard and post-processed in META. The tutorial is a 5-part video series, and each part's video is embedded in its section below. This post follows the same order, explains the reasoning behind each modelling decision and gives you the starting files, so you can build the model yourself click by click. The exercise is the closing project of the LearnFEA course The Finite Element Method for Linear Structural Analysis. You should already know what a second-order tetrahedron, a full-integration shell element and a static equilibrium problem are. You do not need prior ANSA experience: every step in the pre-processor is shown. The analysis at a glance ComponentFront lower control arm (LCA) of a cross kart Load caseBraking, 4,500 mm/s² deceleration in +X AnalysisLinear static, Abaqus/Standard, NLGEOM off Mesh19,109 nodes · S4 shells, 1.7 mm · C3D10 tetrahedra MaterialSteel · E = 210,000 MPa · ν = 0.3 · assessed as ASTM A36 UnitsN · mm · MPa · t/mm³ SoftwareANSA (pre-processing) · Abaqus (solver) · META (post-processing) Result167 MPa peak von Mises stress against 250 MPa yield In this tutorial Extract the loads from the full-vehicle model Prepare the mesh and import it into ANSA Create the couplings and tie contacts Define coordinate systems, loads, boundary conditions and the step Run, verify and post-process Want the theory behind it? See the LearnFEA courses. Get the files to follow along Enter your email and receive the 2 starting files used in the videos: The lower control arm input file (.inp) with nodes, elements and section definitions. The load spreadsheet with forces, moments and coordinate-system values for every hard point. Part 1 of 5Extract the loads from the full-vehicle model You do not need to reproduce this part. It shows where the loads come from, so you understand what you apply later. What the lower control arm does The lower control arm connects the vehicle frame to the knuckle of the front suspension, the part that carries the wheel. It has 4 connection points, called hard points: Front frame attachment and rear frame attachment, which connect the arm to the chassis. Lower shock mount (LSM), where a clevis connects the arm to the spring and damper. The spring is represented mathematically by an axial connector, so it is not visible as geometry. Knuckle attachment, where the arm connects to the knuckle. How the full-vehicle model generates the loads The full-vehicle model is a static Abaqus analysis built in several steps: Pressure is applied to the tires. Bolt pretension closes every bolted joint (bolt, washer and nut). The rigid ground surfaces move up to initialize contact with the tires, while the chassis stays fixed. The chassis is released. The compressed springs push it up until the vehicle reaches its static ride height. Spring stiffness controls that height. A braking deceleration of 4,500 mm/s² is applied in the positive X direction. Weight transfers to the front axle, as it does when you brake. Seat, driver and engine are represented by concentrated masses and inertias. The deceleration is a demonstration value, not a maximum braking condition. The same procedure works for a maximum braking load case. Reading the connector forces Each hard point is modelled with 2 couplings and a connector between them. A history output request on the connector set writes the connector forces CTF1, CTF2, CTF3 and moments CTM1, CTM2, CTM3. They are reported in the local coordinate system of each connector, not in the global system. In META, the history data is read from the .odb file and plotted against time. Because the analysis is static, time is a pseudo time, and only the last value matters: it is the equilibrium state. Every last value goes into a spreadsheet, one column per hard point. Check the first node of every connector Connector forces are reported for the first node of the connector. Open the connector card, take the ID of node 1 and check which coupling and which part it belongs to. If node 1 sits on the lower control arm side, the signs stay as they are. If it sits on the chassis side, invert all signs: the arm receives the opposite of what the chassis receives. LearnFEA course · 146 hoursBuild the full-vehicle cross kart modelThe loads in this tutorial come from the cross kart model built step by step in the nonlinear course: rear suspension, front suspension and the full vehicle, from ANSA meshing to bolt pretension, contact and connectors in Abaqus.View course Part 2 of 5Prepare the mesh and import it into ANSA Export only what the component model needs In the full-vehicle model, the lower control arm parts are isolated together with the 4 couplings at the hard points. The couplings are kept only for the position of their reference nodes: you recreate the couplings yourself in Part 3. The joint springs are hidden. The model is written with File > Output > Abaqus, saved as lower_control_arm_braking_load_case.inp, with these settings: Version: any recent release. The keywords used here have not changed in years. Output: visible entities only. Advanced output options: nodes, elements and properties only. No ANSA comments. The file is then cleaned in Notepad++. The header comments go, a *HEADING line stays at the top, and the coupling definitions are deleted while their reference nodes remain in the node list. What is left is the starting file you download above: *NODE with ID and X, Y, Z coordinates. *ELEMENT blocks, mainly S4 full-integration shells and C3D10 second-order tetrahedra. *SHELL SECTION and *SOLID SECTION definitions. This is where you start following alongEverything before this point was done for you. From here on, reproduce each step in your own ANSA session. Import the file Open ANSA with the ANSA layout and switch the deck to Abaqus: click and hold the deck button, then choose Abaqus. Go to File > Input > Abaqus and open the .inp file. In the import options, set Model action to Overwrite current model and Step manager to Overwrite. Accept the warnings. The file has no material definitions, so ANSA creates default materials. That is expected. Learn the views you will use The default Entity colour mode shows shell orientation: grey is the positive side, yellow the negative side. Shell orientation matters when you define contact. For everyday work, switch to PID mode, which colours each property ID differently. The database tree on the left lists every entity: 19,109 nodes, shell and solid elements, properties and materials. Double-clicking a group also sets the selection filter, so you can pick that entity type in the viewport. Hold Ctrl and drag with the left mouse button to rotate, and scroll to zoom. Clean up properties and material Open the shell section. Thickness is 1.7 mm. Rename it from UCA to LCA. With the cursor on the material ID field, press F2 to edit the referenced material. Rename it Steel. Check the values: E = 210,000 MPa, ν = 0.3, isotropic, density 7.85e-9 t/mm³. Nothing else is needed for a linear static analysis. Give the 4 solid sections descriptive names, for example LSM attachment for the lower shock mount part. Keep units consistent This model uses newton, millimetre, megapascal and tonne. In that system, steel density is 7.85e-9 t/mm³ and stiffness is 210,000 MPa. Abaqus has no units: a mismatch here silently scales every result. LearnFEA course · 42 hoursMesh parts like this one in ANSAThis tutorial starts from a ready mesh. The ANSA meshing course teaches how to make it: CAD clean-up, shell and solid batch meshing, tetra and hexa meshing, quality criteria and morphing, with a full cross kart meshing project.View course Part 3 of 5Create the couplings and tie contacts Kinematic or distributing coupling A coupling links a reference node to a group of nodes. A load applied at the reference node is transferred to that group. Kinematic coupling makes the coupled nodes move as a rigid body. The bore cannot deform. Distributing coupling transfers the load as a weighted distribution and lets the bore deform. This model uses distributing couplings. A real bore deforms under load, and a rigid coupling would stiffen the region and distort local stresses. A detailed comparison with an Abaqus example is in the LearnFEA post on surface coupling constraints. Build each coupling Switch the toolbar to the Abaqus functions. The procedure is the same for the 4 hard points: Open the Sets list, right-click and choose New. Set the selection filter to nodes. Select by solid facets with the feature angle option, then click the inner surface of the bore. All nodes on that surface are selected, 140 in each bore. Name the node set, for example knuckle_nodes, rear_frame_nodes, front_frame_nodes and lsm_nodes. Create the coupling from Constraints > Coupling > Set and pick the node set. Set the type to Distributing and activate degrees of freedom 1 to 6, because forces and moments act in every direction. Replace the reference node. ANSA creates one automatically at the centre of gravity of the set. Put the cursor in the reference node field, press F1 and pick the existing reference node from the original model. Hide constraints first if they cover the node. On the lower shock mount, the default feature angle of 40° does not capture the whole surface. Raise it to 80°. To keep names consistent, use the global axes of the full-vehicle model: positive X points to the front of the vehicle, which tells you which bore is front and which is rear. Tie contacts keep the model linear The arm is an assembly, so its parts must be joined. A tie contact glues 2 surfaces together: no sliding, no separation, no penetration. Unlike contact with friction, it adds no nonlinearity, so the stiffness stays constant and the problem solves in one shot. Isolate the 2 parts to join. Use the PID region filter rather than PID, so you isolate a single part even when several share a property. Create a new set with the solid facet filter. Use a feature angle of about 20° or a box selection to pick exactly the rows of element faces in contact. Leave out faces that are not joined. Set the output as surface and the type as element. Orientation is only needed for shell surfaces. Create the matching set on the second part. To change a set later, right-click it and use Modify content. Search the functions for "contact" and choose Contact pair tie. Assign one surface as slave and the other as master. Press ? in a field to pick from the set list. As a general Abaqus rule, use the more finely meshed surface as the slave surface. Part 4 of 5Define coordinate systems, loads, boundary conditions and the step Why the loads need local coordinate systems The extracted forces and moments are expressed in each connector's local system. Applied in the global system, they would point in the wrong directions. Apply one force at the front frame node first, in the global system, and watch it rotate once the local system is assigned. Create the coordinate systems In the Abaqus deck, choose Coordinate > Rectangular and press the middle mouse button. ANSA creates a system equal to the global one. Enter the 3 points from the spreadsheet: point A is the origin, point B defines the Z axis, point C lies in the XZ plane and defines the X axis. Add the transformation: rotation about axis 2 (Y) of −90°. Use the right-hand rule to read the sign. Name it end_attachment_CS. The front frame, rear frame and knuckle connectors all share this orientation. Create a second system the same way for the lower shock mount, lsm_CS, with its own values. These are the values from the spreadsheet, as they go into the ANSA coordinate card. Both systems use a rotation about axis 2 of −90°. Fieldend_attachment_CSlsm_CS A1, A2, A31285.781204, −558.501042, 8.1257351259.310435, −332.732867, 55.790164 B1, B2, B31289.618723, −558.500961, 8.8531821233.113020, −332.734303, 50.810100 C1, C2, C31, 0, 01, 0, 0 RotationAxis 2, −90°Axis 2, −90° The origin of the system can sit far from the part. Only the axis directions matter here. Assign the systems to the reference nodes Use Nodes > Utilities > Change Transform, select the reference node and pick the coordinate system. Change System sounds right but is the wrong tool. Double-click the loads item in the database to refresh the arrows: the Y force now follows the local Y axis. Apply the loads At the front frame, rear frame and knuckle reference nodes, create 6 concentrated loads each with Loads > CLoad > Node: FX, FY, FZ, MX, MY and MZ. The first CLoad creates Step 1 automatically. Copy each value from the spreadsheet and delete the trailing space that comes with the paste. Hard pointCoordinate systemWhat is applied Front frameend_attachment_CSFX, FY, FZ, MX, MY, MZ Rear frameend_attachment_CSFX, FY, FZ, MX, MY, MZ Knuckleend_attachment_CSFX, FY, FZ, MX, MY, MZ Lower shock mountlsm_CSAll 6 degrees of freedom fixed The extracted loads are listed below, rounded to 2 decimals. Copy the full-precision values from the spreadsheet. Forces are in N and moments in N·mm, each in the local system of its hard point. The LSM column is not applied: it is the reference for the reaction check in Part 5. ComponentFront frameRear frameKnuckleLSM (check only) FX (CTF1), N58.4670.42−140.45−3.01 FY (CTF2), N121.07265.26621.81876.93 FZ (CTF3), N−1,159.78−604.90−248.812,057.27 MX (CTM1), N·mm−8,623.77−8,576.20−7,788.595,076.43 MY (CTM2), N·mm720.701,553.94−236.7694.54 MZ (CTM3), N·mm−1,216.881,558.82−3,306.91−37.50 Fix the fourth point instead of loading it The loads come from a static analysis, so the arm is in equilibrium: forces and moments at the 4 hard points sum to zero. Fixing the lower shock mount therefore makes its reaction forces equal to the extracted LSM loads. That gives a built-in check of the whole setup in Part 5. Create the boundary condition with Boundary > Nodes on the LSM reference node, in Step 1, as displacement, with degrees of freedom 1 to 6 set to zero. Because the node uses lsm_CS, the reactions come out in that system. Set up the step Open the step from the database and name it breaking load case. Set geometric nonlinearity (NLGEOM) to No. Displacements are small, so the linear solver is correct. Save the model with File > Save. Part 5 of 5Run, verify and post-process Request the reaction output Create a node set with the LSM reference node only, named lsm_node. In the step card, open Output requests and insert a history output. Field output covers whole groups of the model. History output covers a chosen set. Add a node output with the reaction forces and moments, on the lsm_node set. Set Global to No, so reactions are written in the local LSM system. Run the analysis Write the input file with File > Output > Abaqus into a new folder, open a terminal in that folder and run the job with the file name without the extension: abaqus job=lower_control_arm_braking_load_case Open the .sta file when it finishes. The analysis completes in a single increment, as expected for a linear problem. Check the reactions against the extracted loads In META, go to Curves, open the .odb history data, select the LSM node and every reaction force and moment, and read the last value of each curve. The first run returned about −2,000 N for RF1 where about −3 N was expected. The cause was the LSM coordinate system: its rotation was about axis 1 instead of axis 2. After the fix and a rerun, the reactions match the extracted LSM loads from the spreadsheet closely. The reaction values below are read from the result curves. ComponentExtracted LSM loadLCA model reaction RF1−3.01 NAbout −10 N RF2876.93 NAbout 794 N RF32,057.27 NAbout 2,100 N RM15,076.43 N·mmAbout 500 N·mm lower RM294.54 N·mmOpposite sign, about 250 N·mm apart The remaining gap has a known cause. The full-vehicle model keeps 2 stabilizer springs in the joint, used to initialize contact, and they carry a small force that the component model does not see. Removing them in the last step of the full-vehicle analysis, with ANSA's model change feature, would close the gap. A reaction check catches setup errors A wrong axis in one coordinate system produced a solution that ran without warnings and looked plausible. Comparing reactions with the source loads found it in minutes. Make this check part of every load-transfer analysis. Compare the stresses The lower control arm is deformable in the full-vehicle model, so its stresses can be compared directly. Plot von Mises stress averaged at the nodes in both models. Peak von Mises stress is 167 MPa in both models. The hot spots sit in the same regions and the contour plots match. Deformed shapes are harder to compare. At a scale factor of 50, the component model shows only bending of the arm, while the full-vehicle result also includes the rotation of the arm as the suspension moves. Compare stresses, not amplified displacements. Acceptance criterion The material is assumed to be ASTM A36, with a yield strength of 250 MPa. For a ductile material, von Mises stress can be compared with yield. A peak of 167 MPa is 67% of yield, a safety factor of about 1.5, so the arm passes this load case. Next step: inertia relief The video closes with an alternative setup: remove the LSM boundary condition, apply the LSM loads as concentrated loads and let Abaqus balance the model with inertia relief. A free body under applied loads that do not sum to zero has rigid body motion, and a static solver cannot solve it. Inertia relief computes the residual forces and moments and applies them in the opposite direction as body forces distributed over the volume of the part. The model is then in equilibrium without any constraint. Loads from explicit dynamic runs, such as a bump or a trench event, include inertial and damping forces spread over the volume. Hard-point loads alone do not sum to zero, and inertia relief accounts for the difference. Loads with a small imbalance, as in this model because of the joint springs, also need it once every hard point is loaded. The Inertia relief section of the Abaqus documentation covers the full definition. Key takeaways Take hard-point loads from the last increment of a static full-vehicle analysis, and check the first node of every connector for sign. Apply loads in the same local coordinate systems they were extracted in, through node transforms. Use distributing couplings to load bores without stiffening them, and tie contacts to join parts while staying linear. Fix one hard point and compare its reactions with the extracted loads. The check found a real error here. Validate the component model against the full model with stresses: 167 MPa in both. Learn the theory behind every step This tutorial applies, in one project, what the LearnFEA courses teach in depth. Pick the course that fills your gap, or take all 3 together. Linear structural analysis12 modules · 60 hoursThe element formulations this tutorial relies on, from springs and beams to tetrahedra and shells, with Abaqus workshops tied to each topic.View course Nonlinear structural analysis9 modules · 146 hoursMaterial, geometric and contact nonlinearity, plasticity and the general formulation, plus the full cross kart model that produced these loads.View course ANSA complete meshing10 modules · 42 hoursIndustry pre-processing in ANSA: geometry clean-up, shell and solid meshing, hexa meshing, quality criteria and morphing.View course Course bundle · 3 courses · 249 hours Complete FEA Training The full path in one purchase, from linear theory to nonlinear analysis and ANSA pre-processing, at a lower price than buying the courses separately. Linear and nonlinear FEM theory with Abaqus exercises. The ANSA, Abaqus and META workflow used in industry. The complete cross kart model, from mesh to full vehicle. Get the bundle Build the model yourself Download the mesh and the load spreadsheet, then follow the 5 parts in order. Get the files The full-vehicle model is not included. Every value you need from it is in the spreadsheet.