pyleecan.Classes.HoleM51 module

Method code available at https://github.com/Eomys/pyleecan/tree/master/pyleecan/Methods/Slot/HoleM51

class HoleM51(H0=0.003, H1=0, H2=0.02, W0=0.01, W1=0, W2=0.01, W3=0, W4=0.01, W5=0.01, W6=0, W7=0, magnet_0=- 1, magnet_1=- 1, magnet_2=- 1, Zh=36, mat_void=- 1, magnetization_dict_offset=None, Alpha0=0, init_dict=None, init_str=None)[source]

Bases: HoleMag

3 magnets V hole

VERSION = 1
IS_SYMMETRICAL = 1
build_geometry(alpha=0, delta=0, is_simplified=False)

Compute the curve (Line) needed to plot the Hole. The ending point of a curve is the starting point of the next curve in the list

Parameters:
  • self (HoleM51) – A HoleM51 object

  • alpha (float) – Angle to rotate the hole (Default value = 0) [rad]

  • delta (complex) – Complex to translate the hole (Default value = 0)

  • is_simplified (bool) – True to avoid line superposition

Returns:

surf_list – List of SurfLine needed to draw the HoleM51

Return type:

list

check()

Check that the HoleM51 object is correct

Parameters:

self (HoleM51) – A HoleM51 object

Return type:

None

comp_alpha()

Compute the angle of the Hole (cf schematics)

Parameters:

self (HoleM51) – A HoleM51 object

Returns:

alpha – Angle of the Hole (cf schematics) [rad]

Return type:

float

comp_magnetization_dict(is_north=True)

Compute the dictionary of the magnetization direction of the magnets (key=magnet_X, value=angle[rad]) Mangetization angle with Hole centered on Ox axis

Parameters:
  • self (HoleM51) – a HoleM51 object

  • is_north (True) – True: comp north magnetization, else add pi [rad]

Returns:

mag_dict – magnetization dictionary (key=magnet_X, value=angle[rad])

Return type:

dict

comp_radius()

Compute the radius of the min and max circle that contains the hole

Parameters:

self (HoleM51) – A HoleM51 object

Returns:

(Rmin, Rmax) – Radius of the circle that contains the hole [m]

Return type:

tuple

comp_surface_magnet_id(index)

Compute the surface of the hole magnet of the corresponding index

Parameters:
  • self (HoleM51) – A HoleM51 object

  • index (int) – Index of the magnet to compute the surface

Returns:

Smag – Surface of the Magnet [m**2]

Return type:

float

comp_width()

Compute the width of the Hole (cf schematics)

Parameters:

self (HoleM51) – A HoleM51 object

Returns:

Whole – Width of the Hole (cf schematics) [m]

Return type:

float

has_magnet()

Return if the Hole has magnets

Parameters:

self (HoleM51) – A HoleM51 object

Returns:

has_magnet – True if the magnets are not None

Return type:

bool

plot_schematics(is_default=False, is_add_point_label=False, is_add_schematics=True, is_add_main_line=True, type_add_active=True, save_path=None, is_show_fig=True, fig=None, ax=None)

Plot the schematics of the slot

Parameters:
  • self (HoleM51) – A HoleM51 object

  • is_default (bool) – True: plot default schematics, else use current slot values

  • is_add_point_label (bool) – True to display the name of the points (Z1, Z2….)

  • is_add_schematics (bool) – True to display the schematics information (W0, H0…)

  • is_add_main_line (bool) – True to display “main lines” (slot opening and 0x axis)

  • type_add_active (int) – 0: No active surface, 1: active surface as winding, 2: active surface as magnet

  • save_path (str) – full path including folder, name and extension of the file to save if save_path is not None

  • is_show_fig (bool) – To call show at the end of the method

  • fig (Matplotlib.figure.Figure) – existing figure to use if None create a new one

  • ax (Matplotlib.axes.Axes object) – Axis on which to plot the data

Returns:

  • fig (Matplotlib.figure.Figure) – Figure containing the schematics

  • ax (Matplotlib.axes.Axes object) – Axis containing the schematics

remove_magnet()

Remove the magnet (set to None) of the Hole

Parameters:

self (HoleM51) – a HoleM51 object

save(save_path='', is_folder=False, type_handle_old=2, type_compression=0)

Save the object to the save_path

Parameters:
  • self – A pyleecan object

  • save_path (str) – path to the folder to save the object

  • is_folder (bool) – to split the object in different files: separate simulation machine and materials (json only)

  • type_handle_old (int) – How to handle old file in folder mode (0:Nothing, 1:Delete, 2:Move to “Backup” folder)

  • type_compression (int) – Available only for json, 0: no compression, 1: gzip

get_logger()

Get the object logger or its parent’s one

Parameters:

obj – A pyleecan object

Returns:

logger – Pyleecan object dedicated logger

Return type:

logging.Logger

compare(other, name='self', ignore_list=None, is_add_value=False)[source]

Compare two objects and return list of differences

as_dict(type_handle_ndarray=0, keep_function=False, **kwargs)[source]

Convert this object in a json serializable dict (can be use in __init__). type_handle_ndarray: int

How to handle ndarray (0: tolist, 1: copy, 2: nothing)

keep_functionbool

True to keep the function object, else return str

Optional keyword input parameter is for internal use only and may prevent json serializability.

copy()[source]

Creates a deepcopy of the object

property H0

Hole depth

Type:

float

Min:

0

property H1

Distance from the lamination Bore

Type:

float

Min:

0

property H2

Hole width

Type:

float

Min:

0

property W0

Hole bottom width

Type:

float

Min:

0

property W1

Hole angular width

Type:

float

Min:

0

property W2

magnet_1 position

Type:

float

Min:

0

property W3

magnet_1 width

Type:

float

Min:

0

property W4

magnet_2 position

Type:

float

Min:

0

property W5

magnet_2 width

Type:

float

Min:

0

property W6

magnet_0 position

Type:

float

Min:

0

property W7

magnet_0 width

Type:

float

Min:

0

property magnet_0

First Magnet

Type:

Magnet

property magnet_1

Second Magnet

Type:

Magnet

property magnet_2

Third Magnet

Type:

Magnet