Introduction (What is BFE.NET)

Brief Finite Element DOT NET or BFE.NET is an open source, software library/framework which is written in C# programming language. This library makes .NET developers to simply be able to add some linear FEM capabilities (in solids and structures) into their software.

This library do not contains any all purpose graphical user interface yet so only way to use this library is to interact with it using C# language or other .NET based programming languages.

BFE.NET Basics

Usually an FE (Finite Element) model is consists of a set of nodes, elements and loads. These three things are fundamentals in this Finite Element Method library. Nodes are points in the space and each elements is connected to a set of nodes, and loads are applying to either nodes or elements. This is an example of a pure FE model of a solid object:


BFE have a Object Oriented background. In BFE.NET, Whole model is an instance of Model class. The Model class is consisted of a list of Node Class, and a list of Element Class allowing user to analyze the model, get displacements of Nodes displacements and internal forces of Elements. Node class have a position in 3d space(X-Y-Z), Element class does have a type and have a list of nodes, and each Node or Element does have a list of loads which is applying to it. This combination makes vast modelling capabilities and organization.


This project is using/used these projects/files:

  • CSParse.NET and some other codes from Christian Woltering for solving sparse linear system

  • Helix 3D Toolkit for some 3D visualizations

  • Formulation of considering shear deformation and partial end release in FrameElement2Node are ported from Matrix Structural Analysis (MSA)

Key Features

Key Features of BFE.NET:

  • Only analysis type is static and linear Finite Element Analysis of solids and structures

  • Supports ‘load case’ and ‘load combination’ concepts

  • 6 DoF per each Node

  • Supports Full or partial restrains per node (inclined or skewed supports not supported)

  • Ability to consider initial displacements (settlements)

  • Serialize friendly classes! (almost all classes can be binary searialized/deserialized seamlessly )

  • Available for .NET 3.5 Client Profile and higher

  • Fully written in C# without any external dependencies

  • Does have a very nice documentation (took plenty of time to make it!)

  • Classes inside code are properly documented (in XML format)

  • Highly optimized compressed column storage (CCS) sparse storage for large matrix operations (thanks to CSparse.NET library)

  • Direct (Cholesky) and Iterative (Condugate Gradient - CG) solvers for solving equation system

  • Ability to make some pre checks to find fundamental errors in Model