How to build a "concept" stator/rotor using TCL code?

Starting from v1.06.02, MANATEE includes a TCL code generator. This feature enables to automatically create a simplified lamination ("concept" stator or rotor) in pre processor HyperMesh while defining useful set nodes for load application, boundary condition application and post processings.

First you need to copy/paste the template located in the MANATEE path Mechanics\HyperMesh\Projects\default_TCL_gen.m. To activate the geometry generation you need to set:

Input.Simu.HM.is_geo_gen = 1;

Lamination Dimensions

The next parameters set enable to define the main dimensions of the lamination.

Lamination dimensions
Lamination dimensions
Input.Simu.HM.Rint = 0.132;%Equivalent lamination internal radius [m]
Input.Simu.HM.Rext = 0.2;%Equivalent lamination external radius [m]
Input.Simu.HM.Lst = 0.35;%Equivalent lamination Length [m]

By convention the lamination’s axis is the Z one.


Now that the main dimensions of the lamination have been defined, you need to choose the equivalent slot that best matches your machine. For now MANATEE only includes three simple slot types for OptiStruct. For all three you need to set these parameters according to these schematics:

Input.Simu.HM.Zs=16;% Number of Slot
Input.Simu.HM.slot_type=33;% 24: rectangular tooth, 32: polar slot, 33: rectangular slot
Input.Simu.HM.H0=40e-3;%Height of the equivalent Slot/Tooth [m]
Input.Simu.HM.W0=15e-3;%Width of the equivalent Slot/Tooth [m or rad]
Slot 24 OptiStruct Schematics
Slot 24 OptiStruct Schematics
Slot 32 OptiStruct Schematics
Slot 32 OptiStruct Schematics
Slot 33 OptiStruct Schematics
Slot 33 OptiStruct Schematics

Note that for the polar slot (type 32) W0 is in radians.

You can also generate the TCL code for a cylinder (example of an outer rotor with permanent magnets) by setting:

Input.Simu.HM.Zs=0;% Number of Slot


Now that you have define the geometry of the machine you need to set the mesh. The meshing workflow is the following:

  • Drawing a single 2D tooth
  • Meshing the 2D tooth
  • Translating and duplicating the 2D mesh to create a 3D tooth
  • Rotating and duplicating the 3D tooth to generate the lamination

With this workflow, you only need to set the 2D mesh of one tooth and the number of layers. All the provided slots have the "same shape", we have labeled all the lines to draw these slots. For each line you can specify how many mesh elements you need on it:

Meshing naming convention
Meshing naming convention
Input.Simu.HM.N_dict.NLay = 8;% Number of mesh layer in Z direction  
Input.Simu.HM.N_dict.NToothTop = 128;% Number of mesh element on the top of the teeth (must be even)
Input.Simu.HM.N_dict.NToothSide = 8;% Number of mesh element on the teeth side
Input.Simu.HM.N_dict.NSlotTop = 1;% Number of mesh element on the Slot top
Input.Simu.HM.N_dict.NYokeTop = 3;% Number of mesh element on the Yoke top
Input.Simu.HM.N_dict.NYokeSide = 8;% Number of mesh element on the Yoke side

NToothTop must be even to make sure that there will be a node in the middle of the tooth. These nodes are used to apply magnetic forces in the simulation part.

If you are creating the TCL code for a cylinder, only three meshing parameters are needed:


It will create NToothTop "polar teeth" or "polar yoke parts" to create the cylinder.


The TCL script will create several sets of nodes that can be used in the simulation.

The first kind of set is the most important one: the "T-sets". "T" for Tooth followed by the tooth number (starting from X=Rint and Y=0 and anticlockwise). It contains the middle point of each tooth. In case of several nodes per tooth tip the naming convention is T5_3 for the third node (in clockwise direction) of the fifth tooth.

These sets are used to apply the electromagnetic forces as nodal forces:


Then there are "Lam_Bottom" and "Lam_Top" that gather all the nodes at the bottom or top of the lamination. They are used for boundary conditions:

Set Lam_Bottom and Lam_Top
Set Lam_Bottom and Lam_Top

The other sets are meant for selecting output nodes (in cards):

Set Yoke_bot and Yoke_top
Set Yoke_bot and Yoke_top
Set Yoke_ext
Set Yoke_ext
Set All_Teeth_Middle
Set All_Teeth_Middle

Advanced parameters

Finally three advanced parameters are provided.

The first one is defined with

Input.Simu.HM.material_path ='';

For now, we use the same default material for all lamination (if needed you can easily change it in HyperMesh). To create this material in TCL we need to use the path "C:/Program Files/Altair/14.0/templates/feoutput/optistruct/optistruct" which is the default installation path. If you have selected another folder to install optistruct you will have to provide your path in the variable.

The second one is defined with

Input.Simu.HM.K = 1000;

In HyperMesh by default everything is in mm. As in MANATEE the unit are in meter we have introduce a scaling factor to convert the units.

The third one is defined with


It is a value between 0 and 1 to skip some tooth nodes when creating the T-sets (and apply forces in the simulation part). Its main purpose is to be used on outer rotor structure. In this topology the "Tooth" is a single radial part. To have a correct cylinder we need to have a high NToothTop, but it increases the number of nodes in a set (and more important the number of load collector in the simulation part). You may want to have a small discretization step with the correct number of points to apply the forces. Here the set "All_Tooth_Middle" is defined with:

Input.Simu.HM.N_dict.NToothTop = 128;
Input.Simu.HM.kf = 1/4;
kf=0.25 T-sets
kf=0.25 T-sets
Previous Next