number of particles stochastically 'move' through the problem search space searching for the minimum/maximum solution point. This means each considered particle can potentially find the optimal solution to the problem. In the FEMU context and approach proposed in this paper; each particle is a potentially correct model to the finite element modelling problem. The particle search space is defined by the number of updating parameters in the models; specifically the maximum number of updating parameters defines the complete search space. Obviously if the models do not have the same number of free parameters then some models will only search a subset of the full search space nonetheless they will be embedded in the full space (see section 4.1 for the chosen particle representation). 

In the next section the mathematical operators of the PSO algorithm are presented. 2.1 PSO Operators In the PSO algorithm each particle is described by its vector position in the search space as in equation 1 below; 1 2 3 { , , .... } m m m m m *i i i i id* = (1) 
where i is an arbitrary particle and d is the problem dimension defined by the maximum number of updating parameters for the models. The particle position features (mid's) are the potential solution variables. This means to evaluate each particle on the problem one substitutes the particle position to the model/function. The rate of the ith particle's position change, the velocity, is represented by; 

 1 2 3 { , , .... } i i i i id *v v v v v* = (2) 
Each particle also stores its (local) best ever position as it searches the problem space. This is represented by; 
 

$$\nu_{i}=\{\nu_{i1},\nu_{i2},\nu_{i3}....\nu_{i d}\}$$

 1 2 3 { , , .... } i i i i id *p p p p p* = (3) 
The swarm also has a record of the best ever position by any particle, this is known as the global best solution (socially) which is represented by; 1 2 3 { , , .... } g g g g gd *p p p p p* = (4) 
On each iteration of the PSO algorithm the position and velocity of each particle are updated. The particle velocity is updated through the following equation; 

$\eqref{eq:walpha}$. 
$\eqref{eq:walpha}$. 
$$p_{_{\mathrm{g}3}\cdots}p_{_{\mathrm{g}d}}\}$$
$$\mathbf{\Phi}^{\dagger}$$
(5) $\frac{1}{2}$
$$|\mathbf{\partial}|+\nu_{a}\left(t\right)$$
(6) $\frac{1}{2}$
$$\begin{array}{l}{{\mathbf{\omega}_{\mathbf{k}}=\mathbf{\nabla}_{m a x}}}\\ {{\mathbf{\omega}_{\mathbf{k}}=\mathbf{\nabla}_{m i n}}}\end{array}$$
1 1 2 2 ( ) ( 1) ( ) ( ) ik k k ik ik gk ik *v t w v t c r p m c r p m* = − + − + − (5) 
and then the particle position is updated using equation 6; 
 ( ) ( 1) ( ) m t m t v t *ik ik ik* = − + (6) 
where { 1... } i m ∈ and { 1... } k d ∈ which means each particle's position and velocity parameters /dimensions are updated on each iteration of the algorithm. See section 4 for the PSO algorithm pseudo code. In equation 6, c1 and c2 ∈ ℝ are constants weighting that normally vary between 2 and 4 [10]. The random constants 1 2 *r r U* , [0,1] ∼ introduce randomness to the search process. In order to prevent the tendency of the particle position and velocity to explode in magnitude, Mmax, Mmin, Vmax and Vmin are defined for each particle dimension. 

Thus if mik > Mmax then mik = Mmax mik < Mmin then mik = Mmin Similarly if vik > Vmax then vik = Vmax vik < Vmin then vik = Vmin; 