StructuralMind

MindFEM Engine

Updated:

On this page

MindFEM is the three-dimensional structural analysis engine that runs the finite element calculations inside StructuralMind. Every node carries six degrees of freedom, three displacements and three rotations.

The core of the engine assembles and solves the equilibrium equation. Code knowledge, load generation and the conversion of results into design quantities all sit in layers outside that core.

Equations solved

Analysis typeEquation solved
Linear staticKu=fK u = f
Nonlinear staticKtΔu=fext−fint(u)K_t \Delta u = f_{\text{ext}} - f_{\text{int}}(u)
Second order (P-Delta)(K+Kg)u=f(K + K_g) u = f
Linear bucklingKϕ=λ(−Kg)ϕK \phi = \lambda (-K_g) \phi
Vibration modesKϕ=ω2MϕK \phi = \omega^2 M \phi

In these equations KK is the stiffness matrix, KtK_t the tangent stiffness, KgK_g the geometric stiffness, MM the mass matrix, fextf_{\text{ext}} the external load vector and fintf_{\text{int}} the internal force vector.

Linear and nonlinear static

A model without one-way elements is solved in a single step. When one-way elements are present, such as a ground spring that carries compression only or a bar that carries tension only, the solution is driven by Newton iteration and the result comes back with a flag reporting whether it converged.

Second order

Second order effects are calculated in one of two forms. In the first, the geometric stiffness is built from the displacement of the case itself through fixed-point iteration, and the case is no longer linear. In the second, the geometric stiffness is built once from a separate vertical load case and then held constant.

The P-Delta described by building codes is the second form. Because the geometric stiffness is a constant matrix, the case stays linear, so superposition and the multiple right-hand side solve under a single factorisation both remain valid.

Buckling

Linear buckling runs in two steps. The reference load is solved linearly, the geometric stiffness is built from the resulting axial forces, and the eigenvalue problem is then solved. Since the geometric stiffness depends on the solution, a buckling case is not linear.

Vibration modes

The number of modes can be given directly, or a frequency limit can be given instead. With a frequency limit the mode count acts as an upper bound and modes are computed until the limit is passed.

Stiffness modifiers are defined at case level rather than element level. The seismic period can therefore be computed with a cracked section and service vibration with an uncracked one, from the same model.

Step series

A series of steps that share the same stiffness is solved with one factorisation and multiple right-hand sides. The same machinery does two jobs. Under a moving load, a step is the position of the load train along the route. In a combination series, a step is the design combination itself.

Superposition holds only for a linear model. In a model that contains one-way springs or tension-only bars, solving the steps under a single factorisation would produce the wrong answer, so each step requires its own solution.

Layers outside the solver

Code and mechanics knowledge is kept in layers outside the solver. The loads these layers produce are seen by the core as ordinary loads.

LayerWhat it produces
Load generatorsSelf weight, earth pressure (Rankine active, passive and at-rest states together with hydrostatic pressure), silo pressure (Janssen, EN 1991-4) and shrinkage strain
Moving loadLoad train positions along the route and the envelope over the step axis
Result integrationResultant force sets on design strip, PIER and Section Cut sections
Model validationModel findings before the solution, diagnostics after it

Result integration works by free body. The internal forces of the elements on one side of the cut are summed at the nodes of the cut, and no stress interpolation is performed. The method therefore makes no distinction between shell, frame and spring elements.

The full set of verification records is on the MindFEM Engine — Verification page.