A mixed finite element / meshless natural element method for simulating rotative electromagnetic machines

Efficient numerical models have been already developed in 2D to take into account the movement of electromagnetic devices with rotating parts in the framework of the Finite Element Method (FEM). When the movement becomes complex it leads to large mesh distortions. A remeshing step is then required which increases the computational complexity and can also lead, in some cases, to numerical ripples on forces and torques due to the field projections between old and new meshes. Moreover, remeshing procedures in 3D remain an open topic. Meshless methods seem an appealing choice for alleviating the mesh constraints. The Natural Element Method (NEM) which, has known a growing interest in the domain of mechanics, allows to proceed in the meshless framework, avoiding one of the main drawbacks related to the vast majority of meshless techniques, as is the imposition of essential boundary conditions. In this paper, a variant of the NEM, known as constrained natural element method (C-NEM) is applied for simulating electromagnetic machines involving rotating parts. A new mixed strategy combining the finite element and the constrained natural element methods is proposed and then tested by using an appropriate error estimator. Magnetostatics; magnetic shielding, magnetic induction, boundary-value problems, Finite-element and Galerkin methods


Numerical modelling of electromagnetic machines
To accurately model electrical machines, one needs to solve the Maxwell equations taking into account the movement of mobile parts.Generally, an electrical rotating machine is made up of two parts.The moving part (the rotor) and the static one (the stator) are separated by a thin clearance (the air gap) to enable the rotor movement.In fact, most of the energy of the machine is concentrated in the air-gap.Thus, it is necessary to take into account very accurately the relative movement between both parts.
At present, the Finite Element Method (FEM) is widely used to solve numerically the Maxwell equations.To take the movement into account, several methods have already been proposed: the macro element [18], the moving band [5], the slip surface [16], the use of Lagrange multipliers [8], the overlapping technique [27], the nodal interpolation strategy [15], the mortar element [17], among many others.Meshless techniques could be envisaged for alleviating the computational complexity related to these approaches.
The main aim of the present work is the analysis of meshless approaches as well as the proposal and evaluation of a new mixed strategy combining the simplicity of finite element descriptions with the robustness of meshless descriptions in the regions involving large mesh deformations.

Meshless approaches
In the past years meshfree methods for the solution of partial differential equations have significantly matured and are used in various fields of applications.One of the reasons for this development is the fact that meshfree discretizations and particle models are often better suited to cope with geometrical changes of the domain of interest than mesh-based discretization techniques such as finite differences, finite elements or finite volumes.Furthermore, the computational cost associated with mesh generation is alleviated in meshfree approaches since they are based only on a cloud of nodes, without any geometrical restriction concerning their relative positioning.
Among the main meshless approaches we highlight the Smooth Particle Hydrodynamics (SPH) [10], the Diffuse Element Method (DEM) [13], the Element Free Galerkin (EFG) [1], the Reproducing Kernel Particle Method(RKPM) [9], the h-p Cloud Method [6] and the Natural Element Method (NEM) [25].Some of these meshless techniques are still nowadays confronted to some difficulties related to: (i) the quality of the approximation as well as the conditioning of the global system is pathologically dependent on the size of the support of the shape functions; (ii) imposing of essential boundary conditions needs special treatments; (iii) integration is not accurate enough, and (iv) physical discontinuities across interfaces must be accurately enforced.
Several techniques for the analysis of problems involving discontinuities or interfaces have been proposed in the finite element [2,12] and in the meshless [14,28] frameworks.The extended finite element method (X-FEM) [12] makes use of the Partition of Unity paradigm [11,12] for approximating discontinuities.The goal of the extended finite element method is to expand the finite element approximation functions for including some features of the solution that are known.
Alternative to the aforementioned methods, the constrained natural element method (C-NEM) [29] has been proposed to handle discontinuities and moving interfaces in meshfree methods in a very simple manner [30].The technique uses the features of the natural element method in tandem with a visibility criterion.In opposition to the vast majority of meshless strategies, the C-NEM allows to enforce exactly essential boundary conditions on the domain boundary, and then to account for transmission conditions across fixed or moving interfaces.
In this paper, the constrained natural element method will be applied to model rotating electrical machines.For this purpose, we first summarize the constrained natural element method (C-NEM).Then, the equations to be solved are given and the method to take the movement into account is described.Finally, a Variable Reluctance Machine (VRM) is modelled using the constrained natural element method and results are compared with results obtained by using the FEM.A mixed formulation combining the versatility of finite elements and the robustness of the meshless approaches to address large mesh deformations is then proposed and evaluated.
For comparison purposes we use the error estimator introduced in [3] in the natural element method framework, which is based on the solution of both complementary potential formulations.It will be applied to quantify the accuracy of the different solutions as well as to compare C-NEM and FEM solutions.A mixed approach combining the versatility of finite elements and the robustness of the meshless approaches to address large mesh deformations will be also proposed and its accuracy checked.This comparison is one of the main original contributions of this paper, an one of the first exhaustive comparative analysis of both approximations to take into account movement, at least in our knowledge.

The meshfree constrained natural element method (C-NEM) revisited
In this section, the ability of the C-NEM for describing moving interfaces and discontinuities in a fixed cloud of nodes is discussed.After a brief review of the Voronoibased interpolants, we introduce the constrained Voronoi diagram which is used to compute the shape functions in any domain.To avoid duplication with some of our former publications, different references to our former works will be addressed.

Natural neighbor interpolation
We briefly touch upon the foundation of Sibson's natural neighbor coordinates (shape functions) that are used in the natural element method.For a more in-depth discussion on the Sibson interpolant and its application for solving second-order partial differential equations, the interested reader can refer to Sambridge and Braun [19], and Sukumar et al. [25].The NEM interpolant is constructed on the basis of the Voronoi diagram (see Fig. 1).The Delaunay tessellation is the topological dual of the Voronoi diagram.
From now on, we focus only in the 2D case, the 3D case being a direct extension.Consider a set of nodes S = {n 1 , n 2 , . . ., n N } in 2 .The Voronoi diagram is the partition of 2 into regions T i (Voronoi cells) defined ∀i ∈ S by: where d( ) denotes a distance.The Voronoi cells related to neighbor nodes have a common edge.
In order to define the natural neighbour coordinates it is necessary to introduce the second-order Voronoi diagram of the cloud defined for each couple of nodes (i, j) ∈ S 2 with i = j as ( Sibson [24] defined the natural neighbor coordinates of a point x with respect to one of its neighbors n i as the ratio of the cell T i that is transferred to T x when adding x to the initial cloud of points, to the total volume of T x .In other words, if κ(x) and κ i (x) are the Lebesgue measures of T x and T xi respectively, the natural neighbor coordinates of x with respect to the node n i is defined as Figure 2 illustrates the construction of φ 1 (x), that in this case is given by: If the point x coincides with the node n i , i.e. (x = x i ), φ i (x i ) = 1, and all other shape functions are zero, i.e. φ j (x i ) = δ ij (δ ij being the Kronecker's delta).The properties of positivity, interpolation, and partition of unity are then verified [25]: ( The natural neighbor shape functions also satisfy the local coordinate property [24], namely: which combined with equation (5), implies that the natural neighbor interpolant spans the space of linear polynomials (linear completeness).Sibson natural neighbor shape functions are C 1 at any point except at the nodes, where they are only C 0 .The continuity can be enhanced by using special classes of natural neighbor shape functions [7].
Another important property of this interpolant is its strict linearity over the boundary of convex domains.The proof can be found in Sukumar et al. [25].An illustration is depicted in Figure 2b: as the areas associated to points on the boundary become infinite, the contribution of internal nodes vanish in the limit when the point approaches the convex boundary, and the shape functions associated with nodes n 1 and n 2 become linear on the segment joining both nodes (S n1→n2 ).This result is essential to guarantee strict continuity of the approximation across material interfaces.The lack of this property is an important issue in most meshfree methods which require special numerical strategies to circumvent this drawback [14].Nevertheless, the property of linearity of the interpolant is only satisfied along convex boundaries [25].The non-convex case needs further developments that will be addressed in the next section.
Consider an interpolation scheme for a scalar function u(x) : Ω ⊂ 2 → , in the form: where u i are the nodal values of the field u at the n(x) neighbor nodes of point x, all them grouped in the set I, and φ i (x) are the shape functions at that point associated with each neighbor node.It is noted that equation ( 7) defines a local interpolation scheme.Thus, the trial and test functions used in the discretization of the variational formulation related to the electromagnetic model treated in this paper could be approximated by equation (7).

Constrained Voronoi diagram
It was proved in [25,29] and [4] that spurious influences between "non-visible" nodes and loss of linearity in the interpolation along boundaries of non-convex domains appear in the framework of the NEM.In order to avoid this drawback and to recover all properties of the method for any geometry (including non-convex domains containing fixed or moving interfaces), a visibility criterion was introduced in order to restrict influent nodes among natural neighbors [29].The computation of the shape functions is then done on the basis of the so-called constrained (or extended) Voronoi diagram (CVD), introduced by Seidel in [22] which is the strict dual of the constrained Delaunay triangulation.
To illustrate this behavior, we consider the situation depicted in Figure 3, where the point x moves from Ω 1 to Ω 2 .If x is in Ω 1 , the interpolated field is constructed from equation ( 7) using the neighbor visible nodes from point x (Γ I is assumed opaque).If x is on Γ I the interpolated field is strictly linear because it only depends on the two neighbor nodes located on Γ I .Finally, when x is in Ω 2 , the interpolated field is defined using the neighbor nodes, visible from point x (Γ I being opaque).The continuity of the interpolated field is then guaranteed, but a discontinuity appears in the field derivatives, because of a sudden change in the neighbor nodes across the interface.Thus, we can then reproduce a continuous field with discontinuous normal derivative across the interface.
The intersection between the constrained Voronoi diagram and the domain closure is composed of cells T C i , one for each node n i , such that any point x inside T C i is closer to n i than to any other node n j visible from x.The constrained Voronoi cells are defined formally ∀i ∈ S by: where Γ is the domain boundary and S a→b denotes the segment between the points a and b.All these constructions can be generalized to 3D [20,21].

The constrained natural element approximation
In order to solve partial differential equations defined on non-convex domains, we consider the following approximation for both the trial and the test functions: where the set I V contains the V (x) natural neighbors nodes visible from point x, and φ C i represents the constrained natural neighbor shape function related to the ith node at point x.The computation of the C-n-n (constrained natural neighbor) shape functions is similar to the natural neighbor ones, when one proceeds using the constrained Voronoi diagram introduced previously.It was proved in [29] that the use of the constrained Voronoi diagram does not affect the properties of the NEM interpolation, allowing the extension of the linearity of the shape functions on the convex domain boundaries, to any geometry, convex or not.
The ability of the C-NEM to treat problems involving cracks was illustrated in [29] and for moving interfaces in thermal problems in [30].In the present paper, the domain is partitioned in some regions with different material properties.Each subdomain is discretized using a cloud of nodes and the interfaces between the different regions are described by a polygonal curve defined by a set of nodes.Then, a constrained Voronoi diagram is defined in each subdomain with respect to the domain boundary and the interfaces.The attractive feature of the present technique is the possibility to move the interfaces without special care for the shape of the underlying Delaunay triangles because the interpolation accuracy does not depend on the geometrical quality of the Delaunay triangles, in contrast to the FEM.In this manner, the continuity of the approximation is guaranteed by the strict linearity of the interpolation across the interfaces, that are defined by a set of interface nodes.

Taking into account movement
It is well known in the context of the FEM that frequent remeshing procedures are required for accounting accurately the rotation.To model the rotation of the electrical machine different methods ara available.Remeshing can be very simple when using a regular mesh.Thus, one must shift the unknowns located on the boundary of the moving part.Nevertheless, the rotation step must be constant, that can be a drawback if one wants to model a machine working at variable speed.
To overcome this task, other methods are applied on a slip line using an interpolation technique to obtain a relation between the static and mobile unknowns.Thus, the nodal values on the slip line of the mobile part are expressed from the ones on the fixed part and then no additional unknowns are introduced.The interpolation can be linear, expressing a moving unknown from two static unknowns [15].It can be also quadratic [23] where three static nodes are necessary to define the interpolation.Another more general approach is given by the "mortar" method [17] which allows expressing the moving unknowns as a function of all the static ones.The solution defined on the moving surface is projected on the fixed one using the Galerkin technique.It is obvious that the "mortar" method gives the best results but the size of the linear system bandwidth increases significantly, in contrast with the two first techniques which do not increase the linear system bandwidth but lead to less accurate solutions, in particular the linear interpolation.Still on the slip line, Lagrange Multipliers can be considered [8].This technique consists in introducing test functions for minimizing the gap in the nodal values (related to moving and static nodes) computed on the slip line.In this case all the nodal unknowns must be computed, and consequently the size of the linear system increases significantly and its conditioning is degraded, like when interpolation methods are used.
Other techniques use a special mesh in the air gap such as the moving band [5].In this method, the mesh is distorted, due to the movement, until an unacceptable degree of deformation.Then, the surface is re-meshed and the nodal connectivity updated as in the locked step approach (regular mesh in the air gap).Unfortunately some numerical ripples can be observed on the torque when remeshing is used.For the macro element technique, an analytic solution is introduced in the air-gap [18].However, the associated linear system bandwidth increases too and the analytic solution can be difficult to obtain for some kind of machines.Finally the overlapping method uses two meshes in the air-gap [27].One mesh is associated to the static part and the whole air-gap region.A Dirichlet condition is imposed at the nodes of the mesh that belong to the mobile part.The same operation is carried out with a second mesh (that contains the mobile part and the air-gap) prescribing the field at the nodes located in the static domain.Thus, two different meshes cover the air gap.This method leads to very accurate results but the mesh computation in the airgap requires significant efforts.
In the C-NEM context, accounting for movement is quite natural and very simple to implement.One could just move the nodes defining the interface because the geometrical quality of the resulting Delaunay triangles does not affect significantly the accuracy of the resulting approximation.In the simulations reported in this work we decided to rotate all the nodes within the inner airgap circle.Then the constrained Voronoi diagram is updated and the interpolation shape functions computed again.

Simulating rotating electrical machines
To test the capability of the C-NEM to model rotating electrical machines, we consider a 6-4 Variable Reluctance Machine (VRM).The calculation of the torque for each relative position between stator and rotor, that is parametrized using the angle θ, is a very tricky problem because for computing the torque (as we explain later) one must proceed in the air gap region where sharp angles due to the presence of rotor and stator teeth are encountered.If the mesh is not regular and fine enough, parasitic ripples can appear in the computed torque (as illustrated later) when one proceeds in the finite element framework.
In Figure 4, a 3D view of the machine is given, as well as the 2D model that is solved.The domain under study is a cross section of the machine defined as Ω = {(x, y) : ext }, being R ext the stator external radius.The stator has 6 teeth and holds three phase windings.Each one is composed of two coils that are wound around one tooth.In our study only one phase is supplied by a DC current.Two regions are then defined the first is flown by a current density +J and the other by a current density −J (|J| = 1 A mm −2 ) (see Fig. 4).Elsewhere the current density is equal to zero.The eddy currents are also neglected.
The electromagnetic field distribution can be calculated by using either the vector potential or the scalar potential formulations.To introduce the notations we consider the basic electromagnetic equations: where B is the magnetic flux density, H the magnetic field and J the current density.There is a constitutive equation that links B and H that writes where μ > 0 represents the magnetic permeability.
On the boundary ∂Ω of Ω we assume that the normal component of B vanishes, that is, Bn = 0, where n is the unit outwards vector defined on ∂Ω.
A field B is said admissible, B adm , if it verifies the first relationship in (10).Analogously, a field H is said admissible, H adm , if it verifies the second relationship in (10).Obviously a couple (B adm , H adm ) that verifies the constitutive equation ( 11) is the exact solution of the electromagnetic problem.
In the 2D problem that we are analyzing we can assume that the magnetic flux density has a zero out-ofplane component, that is B z = 0, that implies that it exists a field A, with components A T = (0, 0, A z ) = (0, 0, A) such that B = ∇ × A. Thus the magnetic field can be defined everywhere using the constitutive equation ( 11): H = ∇ × A/μ, that introduced in the second relation of (10) leads to the 2D vector potential formulation: where the vector current density J has only a zcomponent, i.e.J T = (0, 0, J z ) = (0, 0, J), with both A and J independent on the z-coordinate.Obviously, by construction, its solution allows to define an admissible magnetic flux density B adm that will be referred as B A .The associated magnetic field writes In the same way, another complementary potential formulation can be introduced.Let H s be a field such that ∇ × H s = J.Since H − H s is curl free, we can introduce a scalar potential ω such that: Then, the equation to be solved can be written: This formulation leads to the admissible magnetic field denoted by H ω , but the associated magnetic flux density B = μH ω is not admissible anymore because it does not verify ∇B = 0.It will be denoted in what follows by In the electromagnetic system here considered the permeability of the ferromagnetic part (stator and rotor) is assumed to be constant μ s = μ r = 4π × 10 −4 H m −1 (saturation and hysteresis effects are neglected) and the permeabilities of the air and of the coil are The weak formulation related to equation ( 12) results: where H 1 0 (Ω) is the usual Sobolev functional space.
In the same way the weak formulation related to equation (14) writes: 16) In Figures 5-7 we can observe the cloud of nodes considered for the discretization of the electromagnetic equations as well as the associated Voronoi cells.The interfaces between the different regions are described by a polygonal curve defined by a set of nodes (thick lines in Fig. 7).In order to appreciate the nodal refinement in the air gap between stator and rotor we depict in Figures 6 and 7 two zooms of this area.We can observe that a constrained Voronoi diagram has been associated with each subdomain Ω s (stator), Ω c (coil), Ω a (air) and Ω r (rotor) with respect to the corresponding interfaces.Thus, the continuity of A and ω across the interfaces is guaranteed, allowing the discontinuity of the tangential component of the magnetic flux density across the interface, as discussed previously.Let D 0 be the disk centered on the shaft of the electrical machine and with a diameter equal to the diameter of the rotor as it was reported at the end of Section 2. For accounting a rotation Δθ of the rotor all nodes within D 0 rotates of that angle Δθ.At each rotation step, the constrained Voronoi diagram has to be updated, allowing the computation of the approximation shape functions and then the discretization of the variational formulations (Eqs.( 15) and ( 16)).
Thus, substituting the trial and test functions (both approximated in the C-NEM framework) in the above variational formulations and using the arbitrariness of the fields δA and δω, the following linear system of equations is obtained for the vector potential formulation: and for the scalar potential formulation where θ refers the relative position between stator and rotor, A(θ) the vector containing the nodal values of the vector potential field for that relative position θ, and ω(θ) the vector containing the nodal values of the scalar potential at position θ.
The associated torque can be calculated from: where R is the radius of a circle completely defined in the air gap, and F t the tangential component of the electromagnetic force density F that is computed from the Maxwell stress tensor.Thus, during a complete turn, the torque varies and due to the localization of the potential gradients significant oscillations appear when the torque is computed using a coarse mesh in the finite element framework if no remeshing is performed, as we illustrate later.Figure 8 depicts, for 4 relative positions between the rotor and the stator (θ   θ 4 = 45 • ), the flux path-map given by the vector potential formulation when the phase indicated in Figure 4 (bottom) is supplied with a DC current.
In order to compare the solutions related to different approximation schemes, we are using an appropriate error estimator based on the verification of the constitutive relationship.This error estimator was introduced in [26] and is often used to estimate numerical errors in static electromagnetism.This estimator was recently used to compare finite element and meshless natural element solutions in the case of magnetostatics (without taking into account movement) in [3].In the present work we are applying this estimator in order to compare both methods when the movement is also taken into account.This estimator is defined by: where v = Ω (vv)/μ dΩ.It was proven in [26] that this error corresponds to the distance between the averaged magnetic flux density B = 0.5 (B adm + μH adm ) and the exact field B ex .
Obviously we can define an equivalent error norm operating on the magnetic fields: A more appropriate expression for the error consists of normalizing the previous expressions.In that follows a relative error will be computed by using or by using the equivalent norm: As described previously the torque can be computed as soon as the fields are available.However, these fields can be computed by using either the vector potential formulation or the scalar potential one.The resulting torques will be denotes by C A and C ω respectively.Obviously all these fields, H A and H ω and the scalars C A and C ω , depend on the relative position between the rotor and stator.To define a torque relative error we must be careful because the torque vanishes for some rotor positions.To overcome this difficulty we could integrate the different norms in the angular coordinate defining the rotor position: where the integration domain is reduced to θ ∈ [0, π  4 ] by symmetry considerations.
One could expect that the main differences between a finite element and a natural element solutions should be located in the air gap where due to the rotor movement the finite element mesh becomes very distorted.Of course in a precise implementation of the finite element method the mesh is updated locally or globally to avoid too distorted elements.However, in this work we have decided to proceed with the same cloud of nodes to perform both discretizations, the one using the FEM and the other the C-NEM.Thus, a linear finite element interpolation will be applied directly on the Delaunay's triangulation to obtain de finite element shape functions.The same triangulation was also considered to define the Voronoi diagram used to computed the C-NEM interpolation functions.
As the C-NEM becomes piecewise linear on the domain boundary or on any internal interface, as previously illustrated, one could define two interfaces, the first one located on the rotor external radius, and the other one on the internal stator radius.Thus, the region in between both radii defined the air gap, where a maximum mesh distortion is expected.It seems natural that an appealing choice for the interpolation in that region would consist of using the C-NEM approximation.On the other hand, because the CPU time related to the construction of the C-NEM shape functions is much more higher that the one required to define the finite element approximation, one could prefer to use in the other two remaining regions a linear finite element discretization constructed on the Delaunay triangulation.In this way, both interpolations connect perfectly on the interfaces between the different regions.The mixed discretization strategy uses the C-NEM in the air gap and the FEM in the remaining domain.
Figure 9 depicts the evolution of ÊH (θ) for the three functional approximations: FEM, C-NEM and the mixed FEM/C-NEM, where by symmetry considerations θ varies in the interval θ ∈ [45 • , 90 • ].These solutions were computed using a cloud of 400 000 nodes.Now, we compute the torque for different rotor positions θ ∈ [45 • , 90 • ], different formulations (vector potential and scalar potential), different discretization techniques (C-NEM, FEM and mixed FEM-NEM) and different nodal densities.
Figure 10 compares the computed torques C(θ) using both potential formulations and the different discretization techniques (the FEM, the C-NEM and the mixed strategy), when a cloud of 6755 nodes was considered.We can notice that for coarse meshes the FEM generates the expected spurious oscillations whereas the C-NEM solution looks significantly less perturbed.All these solutions come close as the number of nodes increases, illustrating the convergence of all the used formulations.The mixed FEM/C-NEM solution shows less oscillations than the finite element solution, being its   associated computing cost similar to the one related to the finite element solution.
Finally, we quantify the convergence rates for both the magnetic field and the torque.Concerning the magnetic field we consider a particular position of the rotor, in our simulation θ 1 = 0 • , evaluating the error according to equation (22) for different nodal densities.The resulting error evolution is depicted using a log-log scale in Figure 14, where the norm (22) was used.The slope of this representation corresponds to the convergence rate, that for both the C-NEM and the linear FE interpolation here considered is expected to be one for the energy norm here considered.We can notice that despite the same conver-gence rate that both discretizations exhibit, the C-NEM accuracy is significantly better.The convergence rate of the mixed formulation is also first order and its accuracy is in between the ones related to the FEM and the C-NEM.
Figure 15 depicts the results associated with the torque convergence analysis, where the error is computed according to equation (24).The conclusions are similar to the ones just addressed in the magnetic field convergence analysis.One can notice that the mixed solution is a bit less accurate that the C-NEM solution, but it is much better that the FEM one.However, the computing time related to the mixed solution is very close to the one associated with the FEM.

Conclusions
In this paper the constrained natural element method has been applied for simulating electromagnetic rotative machines.The use of the aforementioned technique allows to alleviate the difficulties related to remeshing in the finite element context, improving significantly the solution accuracy.A method combining the versatility of the FEM and the robustness of the meshless natural element method to take into account the movement has been proposed and tested.It seems that this combination is a good compromise between computing time and accuracy.
The extension to 3D geometries and the nodal density adaptation using appropriate error estimators are in progress.

Fig. 4 .
Fig. 4. (Color online) Scheme of a rotative electromagnetic machine: 3D and 2D views (units in metric system).In the bottom figure we can see the regions where the current density is non zero (in red and blue).Only one phase among the three phases is supplied.

Fig. 9 .
Fig. 9. (Color online) Error in the magnetic field by using the FEM, the C-NEM and the mixed FEM-NEM discretizations calculated with a cloud of 400 000 nodes.

Figures 11 -
13 compare the different formulations and discretization techniques when a cloud of N = 27 046, N = 106 804 and N = 419 116 nodes are considered respectively.

Fig. 10 .
Fig. 10.(Color online) Computed torque using the vector and scalar potentials, different discretization techniques and 6755 nodes.