The 1D elements are expanded in subroutine ``gen3dfrom1d.f'', the 2D elements in ``gen3dfrom2d.f''.

Expanding the 1D elements involves changing the topology of the element from a 3-node 1D element to a 20-node 3D element using the expanded nodes stored in field knor. Notice that the old node numbers are not used, so at this stage conditions applied to the old node numbers are not yet transferred to the new nodes. To calculate the position of the new nodes the unit vectors 1 and 2, stored in xnor, are used together with the information defined by *BEAM SECTION on the dimensions and the form of the cross section. Both rectangular and elliptical cross sections are allowed.

Expanding the 2D elements requires the thickening of the elements using the expanded node numbers stored in knor and the normals stored in xnor. The element numbers remain, only the topology changes. Notice that the old node numbers are not used, so at this stage conditions applied to the old node numbers are not yet transferred to the new nodes. Plane strain, plane stress and axisymmetric elements require some additional care: these are special elements taking into account specific geometrical configurations. Remember that 8-node 2D elements are expanded into one layer of 20-node brick elements and 6-node 2D elements into one layer of 15-node brick elements. Plane strain, plane stress and axisymmetric elements are defined in one plane, traditionally the x-y plane. Now, for the expansion into 3D this plane is assumed to correspond to z=0. It is the middle plane of the expansion. The elements are expanded half in positive z-direction, half in negative z-direction. Let us call the expanded nodes in positive z-direction the positive-z nodes, the ones in the plane z=0 the zero-z nodes and the rest the negative-z nodes. For plane strain the positive-z and negative-z nodes exhibit exactly the same displacements as the zero-z nodes. These conditions are expressed in the form of multiple point constraints, and are also generated in subroutine ``gen3dfrom2d.f''. These MPC's greatly reduce the size of the ensuing matrix system. For plane stress elements the positive-z nodes and the negative-z nodes have the same displacements in x- and y-direction as the zero-z nodes. For axisymmetric elements the positive-z nodes and the negative-z nodes have the same displacements as the zero-z nodes for all directions in cylindrical coordinates. Finally, for plane strain, plane stress and axisymmetric elements the displacement in z for the zero-z nodes is zero.