User Details

User Name

Finite Element Analysis Explorer Help

2017 - C#, XAML
Download - Help - Quick Start - Privacy Policy

General Help

The purpose of this Application is to provide a graphical view of structural static analysis problems and to determine properties such as loads, displacements and stresses within structural constructions such as beams, bridges and trusses. There is a quick start video demonstration Here. The application is still a work in progress, if you have any suggestions that are not already in the TO-DO list below then contact us and we will take them into consideration. Or you can find the source code on GitHub.


This App has three primary phases. The first phase is Construction. Its purpose is to construct a 2D Model to be passed to the second phase, The Solver. This next phase's purpose is to attempt to solve the model that was made during the construction phase. Results is the last phase, its purpose is to display the results calculated during the solving phase.

Each phase has a root page split into two. On the left is the details pane which is used to display details about the current state or the phase. On the right is the Display. This pane is used to display graphical views of the model.

To navigate between each phase there are icons located at the top of each details pane.

Navigation Icons

The navigation icons are in the top left corner. These are used to navigate between pages.

  File Menu: Displays the file management options.
  Construction: Show the construction state used to make the model.
  Settings: Contains the App's settings such as colors.
  Report: Display the generated report.
  Add: Add new sections.
  Back: Return to previous page.
  Sections: Manage sections used to define the members.
  Solve: Solve the model.

Numbers: Engineer's Notation

Ever wondered what that "ENG" button does on your calculator? This is used to convert a number into a specific format commonly used by most engineers, hence the name Engineering Notation. This App displays model properties in two primary ways. Firstly, is the single value display.

Engineer's notation displayed within a control in the details panel.

From left to right we first have the property name (Elastic Modulus (E). Then there is the numerical value shown (200 10+E9) followed by the unit type (Pa). The second primary display is for dual values. As each Member has two ends these are useful for reducing the amount of scrolling around.

Engineer's notation displayed within a dual display control in the details panel.

Above are four dual displays stacked to show the common properties related to loads. From left to right we first have the Near Node, then we have an icon describing the related axis. This is followed by the Far Node and then the unit type common to both values. Near Node is a fancy term for the left end of the Member and Far Node is the right end. For the case where the Member is vertical then the Near Node is on the bottom end.

From top to bottom the four icons define firstly the X axis then the Y axis. Next is the Moment and lastly is the Linear value. These also show the positive direction of the property.

To change the values, there are three choices. To change the Near Node value click on the value. This is similar for the Far Node. If you wish to change both at the same time then click on the icon between the two.

Input pop-up that is used to enter data.

To input data, enter the value into the text box at the bottom on the pane. If you are stuck on a tablet and can't be bothered getting the keyboard out then use the buttons to manipulate the value.

The lock icon is used to hold the value from the last input. This can help if many values have to be changed.

Unit Types

There are still several types of unit systems used throughout the world. The two major unit systems used within most engineering are Imperial and Metric standards. This application was developed using the Metric system but also have provisions for the Imperial system.

The Unit Type menu for length.

To change the unit type for a specific unit, you can click in the unit notation within the details panel. This will display a menu where you can choose another unit type.

Construction Phase

To construct a model it is simply a matter of double clicking (tapping) somewhere on the grid within the display to start drawing. This will create the first point (vertex, node) used to define a Member. To finish defining a Member simply click on another part of the grid somewhere. You can continue to click to create more Members of double click to finish. You can also tap and hold to finish as well if using a touch screen.


For the solvers to work the model needs to be constrained. If we were to nail a piece of timber (member) across a doorway we would model this as constrained by pins at both ends. This App contains several different types of constraints. To choose a constraint you simply click on either side of the constraints display within the details panel. From there you select the desired constraint type and the model will update.

The constraints control in the details panel.

Each constraint has a choice of either up, down, left or right. The model generally considers these to all be the same thing and the four choices are only for the display. The exceptions to this are Rollers and Tracks, both of these move in either a horizontal or vertical direction therefore top and bottom are the same as with left and right being the same to the model.

  Fixed: Fully fixed constraint. This type of constraint restricts movement in both the X and Y axes as well as restricting rotation. A signpost that is concreted into the ground would be considered fully fixed.
  Pinned: These prevent movement in both the X and Y axes but allow rotation. A see-saw in a playground is pinned in the centre where the board pivots.
  Roller X axis: Constrained in the Y direction. Movement along the X axis is allowed as well as rotation.
  Roller Y axis:  Constrained in the X direction. Movement along the Y axis is allowed as well as rotation.
  Track X axis: Constrained in the Y direction. Movement along the X axis is allowed but rotation is restricted.
  Track Y axis: Constrained in the X direction. Movement along the Y axis is allowed but rotation is restricted.
  Free: Unconstrained. As members are straight this is usually used where member change direction or join other members at a joint without any restraints.


There are several type of loads that can be applied to the members. Point loads can be applied to either or both the near and far ends of members. Problems that require a load within the center of a member requires the user to split the member into two during construction. Linear distributed loads can be applied to members via the loads section within the details panel.

Solver Phase

The solver state requires no attention from the user. Hit the button and the App will solve the model automatically. If the solver runs into any problems then it will stop during this phase to inform the user of the problem.

Results Phase

The results state uses a similar approach as the construction state, selecting any member will show the details of that member on the left in the details panel.


This application is a work in progress. If you would like to report an issue or have a feature then you can use GitHub to do this. Below is a simple outline of the items that are currently in development.

  • Replace numerical input panel. The current panel is an effort at handling both touch and keyboard input.
  • Many cost elements are currently not working.
  • Currently there are several menu items that are either not working properly or are not implemented yet.
  • Fix window resizing.
  • Imperial units are not well test at the moment.
  • Add self weight as an factor affecting calculation.
  • Add graphics for moments in both displays.

Change Log:

  • 2021-09-02: Implemented a web report into the results. This can be saved externally if needed.
  • 2021-08-19: Fix error on start up.
  • 2017-03-28: Replaced Member selection functions.
  • 2017-03-28: Fix error preventing help pages from loading.