Validation Case: Static Analysis of an W-Beam Under Remote Force
Problem statement
This mechanical simulation is part of the series of validation cases performed using OnScale Solve. It consists of a steel W-beam with a remote force applied at an offset from one end face and the other end face is fully fixed. The predicted deflection at the free end of the beam from the simulation results is compared against the reference solution given by Roark’s Formulas for Stress And Strain [1].
Geometry
The geometry is a 1 meter long W-beam as shown in fig. 1. The CAD file for this geometry is available as an Onshape document. The dimensions of the base sketch are shown in fig. 2.


Boundary Conditions
A restraint boundary condition is imposed on one end face of the W-beam in all directions. A remote force is imposed at the other end face of the W-beam with an offset of 1 m and a magnitude of 1000 N.
Material Properties
Homogeneous isotropic linear elastic properties of structural steel are used.
Property | Symbol | Value |
---|---|---|
Young modulus | E | 200 GPa |
Poisson’s ratio | \nu | 0.3 |
Mesh
OnScale Solve generated a second-order tetrahedral mesh. Five simulations are run with the mesh density ranging from very coarse to very fine.
Mesh density | # of elements | # of dofs |
---|---|---|
very coarse | 6,962 | 29,114 |
coarse | 12,144 | 50,819 |
medium | 15,923 | 66,643 |
fine | 23,591 | 98,848 |
very fine | 141,354 | 593,189 |
Results
The deflection \omega at the free end of the beam from the simulation is compared against the reference solution \omega = -0.86805 mm [1]. The reference solution for the deflection \omega at the free end of the beam is given by the following equations where the remote force F is equivalent to a force of the same magnitude acting at the face and moment M.
M = Fd
I = \frac{1}{12}(BH^3 - bh^3)
\omega = \frac{FL^3}{3EI} + \frac{ML^2}{2EI}
Note the reference solution is computed using the approximated Euler-Bernoulli method so the difference is not expected to converge towards zero.
Mesh density | # of dofs | Ref. \omega [mm] | Sim. \omega [mm] | Diff. [%] |
---|---|---|---|---|
very coarse | 29,114 | -0.86805 | -0.88035 | -1.417 |
coarse | 50,819 | -0.86805 | -0.88047 | -1.431 |
medium | 66,643 | -0.86805 | -0.88083 | -1.472 |
fine | 98,848 | -0.86805 | -0.88084 | -1.473 |
very fine | 593,189 | -0.86805 | -0.88088 | -1.478 |
Simulation Definition
The complete simulation definition is given below.
""" Auto-generated simulation code. """
import onscale as on
with
on.Simulation('Simulation', 'Generated in SOLVE', version = '0.8.1') as sim:
# General simulation settings
on.settings.EnabledPhysics(["mechanical"])
# Define geometry
geometry = on.CadFile('W-Beam.step', unit="m") body = on.Body(body_type="Deformable", ref_point=[0.0515, -1, 0.053]) geometry.parts[0].faces[13] >> body
# Define meshing
on.meshes.MeshFile('very_fine_mesh_volume.msh')
# Define material database and materials
materials = on.CloudMaterials('onscale') structural_steel = materials['Structural steel'] structural_steel >> geometry.parts[0]
# Define and apply loads
restraint = on.loads.Restraint(x=True, y=True, z=True, alias='Fixture 1') restraint >> geometry.parts[0].faces[12] force = on.loads.Force(1000, [0, 0, -1], alias='Force 1') force >> body
# Define output variables
field_sensor = on.sensors.FieldSensor(data=["Displacement", "VonMises", "Stress", "Strain", "PrincipalStress", "PrincipalStrain", "StrainEnergyDensity", "EigenVector"], alias='Global Sensor') field_sensor >> geometry probe_sensor = on.sensors.ProbeSensor(data="Displacement", alias='Sensor 1') probe_sensor >> geometry.parts[0].faces[13] reaction_sensor = on.sensors.ReactionSensor(alias='Reaction_Fixture 1') reaction_sensor >> restraint