Truss Solver

Proper Boundary Conditions


How to Specify Loads and Restraints that allow a Solution to be Found

In order for Truss Solver to find a solution to a truss problem, the problem must first meet certain conditions. These conditions ensure that the problem is properly posed, that is, it has a unique solution. It is actually quite easy to specify problems that have multiple solutions. Consider the following, a single bar under uniaxial tension:

While we can easily solve for the force and stress in this bar, it is free to move as shown (note that under the small displacements assumptions we have made, the fact that the force is no longer directly along the bar in the dashed configuration is ignored) and the displacements can be changed arbitarily by this rigid translation and rotation. Because rigid translations and rotations produce no strains, they do not change the stresses or forces. And since we have only specified forces in the boundary conditions, we still have a solution to our problem after the addition of arbitrary displacements.

Computers can only give a single numerical answer to a problem, thus, we must specify enough restraints to remove the possibility of rigid motions without restricting the deformation of the structure, in this case, extension of the bar. We can remove the rigid translation by restraining the displacements at the left end as shown:

We can no long apply a force to the left end of the bar, that force is now a reaction force needed to enforce the restraint u=0 and is part of the solution.

We still have not restricted the rotation of the bar about the pin at the left end, as shown above. To restrict this motion, we must stop the right end from moving vertically, which to the order of approximation we are using here, is the only effect of a small rotation about the left end. Thus, the final set of restraints is shown below:

This bar is free to stretch horizontally, but all rigid motions are restricted. It is only by restricting the rigid body motions (translations and rotations) that we make the solution to the problem unique and capable of numerical solution. However, in the process we must make sure that we do not over constrain the problem and restrict the body from deforming.

All of this discussion applies for any truss (actually, any elastic body). The boundary conditions for the on-line manual example apply similar boundary conditions to restrict the motion of a six bar truss.

The discussion above applies to problems with only specified forces, which is all we have in many cases. In other cases, the truss might be connected to something else, such as a foundation, that we consider to be rigid compared to the truss. In this case we will have displacement boundary conditions as part of the original problem statement, and we may or may not need to apply additional restraints to restrict rigid body motions.


  1. At least 3 restraints (displacement BC) are always needed for a 2-D problem.
  2. There must be at least one restraint in each of the X and Y directions.
  3. A pair of restraints must act so as to eliminate rigid rotations.
  4. Restraints added to restrict rigid motions, must not restrict deformation of the truss.

Truss Solver will not let you solve a problem that does not meet conditions 1 and 2. However, satisfying 3 and 4 is up to you to check.

What happens if I have not restricted all rigid body motions?

The results of attempting to solve a ill-posed problem depend on the exact details of the truss problem and how the numerical solution is performed. It may be that in the course of solving the problem, a division by zero might be attempted. In this case Truss solver will report that solution was not possible:

This error can also occur if you do not have a rigid truss and instead have a mechanism in some part of your truss.

On the other hand, the program might manage to find a solution, but it may make no sense. Consider the built in example problem solution:

This example has a horizontal force applied to node 3 in the positive X direction and the restraints at nodes 1 and 2 are the same as those discussed above, u=v=0 at node 1 and v=0 at node 2.

If we change the restraint at node 2 to u=0, this no longer restricts rigid rotation about node 1 and we get the following for a solution:

Note the displacement magnification, it is much less than one. A valid solution (assuming the applied forces are physically reasonable) will always have a displacement magnification greater than roughly 10. In addition, the displacement at node 3 in the horizontal direction is in the opposite direction from the applied force. Thus, this solution makes no physical sense. This shows one of the major problems with computer solutions: just because the computer gives you a solution does not mean that it is physically meaningful.