By Nick Loomis

What is this Method of Joints business?

The Method of Joints a technique for finding the internal forces acting within a truss. It works under the assumption that all the members are pin-connected, making them two force members. Equations of static equilibrium can then be written for each pinned joint, and the set of equations can be solved simultaneously to find the forces acting in the members.

The biggest problem with the method of joints is the amount of work that goes into computing each member's force. If only a few forces need to be computed, it may be difficult to solve for just those forces; instead, you may end up solving for many more than intended. Additionally, computing the components of force in each direction involves finding the unit vector pointing along the member.

For a simple five jointed truss, writing just the equations for equilibrium means writing ten separate equations. Add in finding the force components along the members, and you have a handful of math. If the number of joint where increased to a more reasonable 15 joints, there would be more work than most are inclined to compute by hand.

This is where the computer comes in. Besides reducing arithmetic errors, it can solve for an extremely large number of equations within a fraction of a second. A computer application could certainly be useful for checking hand work, or solving large trusses where it would be too time consuming to do the computations by hand.

Why is a truss handy?

Trusses can support large loads without adding too much to the overall mass of an object. A bridge, for example, could probably work as a large concrete slab (asumming that the temperature didn't change too much), but the thickness required would be both costly and difficult to manufacture. By making a bridge out of a truss, a thinner road base can be used. This cuts down on overall mass (a few steel beams here and there compared to multiple cubic meters of concrete), and saves money.

Overall, a truss is just more efficient. It can support large loads by redistributing the force, it costs less, puts less stress on the supports, and has greater mechanical advantages over a slab of material.

What's the program?

The program is a simple truss analysis tool. The user can either create a truss or load one from their hard drive (application version only). Then they can analyze it statically, or try to find the truss's breaking point dynamically. Other functions include saving of the truss and summaries, and printing.

This project also marks the end of a semester of Java programming. It's an example of a few of the things that I've learned along the way; while there's much to be desired, I am satisfied with the final results. Java actually has several benefits: the truss code can be used on multiple systems, all the calls are universal (everybody sees and uses the same stuff), and it can be ported to an applet with somewhat relative ease.

While there are minor differences in appearance between systems and changes in user response between VMs, everybody gets the same functionality. Even though Java is an interpreted language, and will run slightly slower than native applications, there wasn't anything that was processor intensive. A 40 joint truss can be stored to a matrix and solved 200 times over in less than a twentieth of a second on a nominal system. Hence, the speed difference was of really no consequence, and was heavily outweighed by portability between platforms.

One feature that is somewhat unique is the ability to find when the truss will break. Using a binary search algorithm, the program successively tries dynamic loads to find when the forces in the members exceed the maximums that the members can take. When a truss is created by the user, the maximum compression and tension values are assumed to be 150% of the maximum load. (By editing truss files, you can specify exactly how much tension and compression the member can take. Another reason to use the application version.) This may result in broken members; examine the sign to determine whether the member is actually in tension or compression.

How's the program work, and what are its limits?

The operation of the truss analysis application is detailed on the pages within the site. Breifly, it uses two main concepts: binary searching and Gaussian row eschelon form. The binary search is used for dyanmic analyses, continually cutting the breaking-point search range in half. This means that 14 steps will get a precision beyond what normal users call for (about 1 part in 16000 or so). The Gaussion REF method is just a way of solving simultaneous equations arranged into a matrix. It works by solving each equation in terms of one varialbe at a time, and substituing the expression into the other equations. More on both these methods appears within the site files.

Memory really is the only limit to the truss analysis program supplied online. It has been designed to expand to fit any sized truss, and can handle anything that your computer has memory for. I have tested it up to 212 simultaneous equations, but haven't had the patience to create structures larger than that.

The computations are limited by the floating point precision available. In some cases of extremely large and erratic (ie, not orderly) trusses, the floating point can affect things, but this is a limit of the computer. These cases are fairly easy to recognize: many times the analysis will return with a large number of broken members or zero force members. Glance through the truss after an analysis, and make sure that it makes sense. Unless you're just trying to stress the system, it should be fine.

In line with the floating point precision, the number are rounded off to three sig figs. A force of 1.00023 will end up being a 1.00 on the display. There is also an arbitrary limit to what defines a zero-force member: any member whose force is found to be less than about 10^7 is assumed to be zero. Such forces actually occur quite frequently (due to the internal precision), and can have an affect on other forces (like making them appear larger than they should be). There's little that can be done about internal precision; I've tried to catch a few of the errors, but a few will still appear from time to time. Just be wary, especially when the truss is abnormal.

Other information:

Read through the instructions on the applet page. The program follows a CAD like interface of clicking and following prompts. Use the toolbox to select an action to perform when creating a new truss, and use the menus to analyze a truss after it's been loaded. Try to restrict yourself to working on one truss at a time, so that the system doens't get confused about which one you mean to analyze.

If you find the analysis program useful, visit the downloads page. There are links to the applet, application classes, source code, and a Mac version of the compiled application. You can get pretty much everything that you need to run the application on your own computer.

Other questions and comments can be addressed to the author through e-mail at