14. Periodic Boundary Conditions#

Sets periodic boundary conditions. In particular, when analyzing a rotating machine, appropriate periodic boundary conditions and sliding-motion settings must be specified.

Settings#

14_Periodic_Boundary_Conditions JSON key: Periodic boundary condition object

PERIODIC_CONDITION(14) JSON key: Periodic boundary condition settings object

CYCLIC(14) Sets the periodic boundary condition

SYMMETRY(14) Sets periodic and antiperiodic boundary conditions

N_CYCLIC(14) Sets multiple periodic boundary conditions

Translational periodic boundary condition (when CYCLIC = 1)

DXYZ(14) Mesh length in the translational direction for one period

Rotational periodic boundary condition (when CYCLIC = 2 or 3)

ANGLE(14) Mesh angle for one rotational period

SEPARATE_ANGLE(14) Angle used to distinguish rotational periodic boundary surfaces

Helical periodic boundary condition (when CYCLIC = 4)

DXYZ(14) Mesh length in the helical translation direction for one period

PITCH(14) Twist-pitch length in the helical translation direction for one period

DEFORM(14) Sets internal twisting of a model along a straight line

When setting sliding motion ( MOTION(2) = 2)

PERIODIC_CONDITION(14) JSON key: Periodic boundary condition settings object

SLIDE_NDIV(14) Number of divisions in the motion direction during sliding-motion analysis

SLIDE_MAT_ID(14) Specifies the material ID of the sliding points or sliding edges during sliding motion

FITNESS(14) Criterion for determining the mesh-position match between the moving and stationary sides during sliding motion

LINE_INPUT(14) Specifies sliding edges as line segments

START_END_XYZ(14) JSON key: Specifies sliding edges by their start and end points

MESH_NO(14) Number of the mesh file defining the sliding edges

NO_LINES(14) Number of line segments specified by LINE_INPUT

NUMBER_SLIDING_FACES(14) Specifies multiple sliding surfaces

14_2_Regular_Mesh_Condition_for_STEADY_CURRENT JSON key: Steady-current eddy-field analysis condition object

NO_REGULAR_MESH(14) Sets the steady-current eddy-field analysis conditions

VELOCITY(14) Velocity of the moving conductor

REGULAR_NDIV(14) Number of equal divisions in the moving-conductor direction

REGULAR_NMAT(14) Number of material IDs for the moving conductor

MAT_ID_NOS(14) List of material IDs for the moving conductor

Input format#

Text-format section
Type:

Fixed parameter set 1

Number of rows:

1

Number of parameters:

8

Text format#
* CYCLIC  *  SYMMETRICITY * SLIDE_NDIV * SLIDE_MAT_ID * FITNESS * LINE_INPUT * N_CYCLIC * SLIDE_OPTION *
    I             I             I            I           E          I           I            I
Type:

Additional parameter set 1 | when CYCLIC=1

Number of rows:

1 * NUMBER_SLIDING_FACES

Number of parameters:

3

Text format#
* DX * DY * DZ *
E    E    E
Type:

Additional parameter set 2 | when CYCLIC=2 or 3

Number of rows:

1 (2; SEPARATE_ANGLE is required when ANGLE=180) * NUMBER_SLIDING_FACES

Number of parameters:

1 (1)

Text format#
* ANGLE *
    E
* SEPARATE_ANGLE *
        E
Type:

Additional parameter set 3 | when CYCLIC=4

Number of rows:

1

Number of parameters:

5

Text format#
* DX * DY * DZ * PITCH * DEFORM *
E    E    E     E       I
Type:

Additional parameter set 4 | when LINE_INPUT=1 and SLIDE_MAT_ID≠-1

Number of rows:

1 * NUMBER_SLIDING_FACES

Number of parameters:

7

Text format#
* SX * SY * SZ * EX * EY * EZ * MESH_NO *
E    E    E    E    E    E     I
Type:

Additional parameter set 5 | when SLIDE_MAT_ID=-1 (multiple sliding surfaces)

Number of rows:

1

Number of parameters:

1

Text format#
* NUMBER_SLIDING_FACES *
        I
Type:

Additional parameter set 4 | when SLIDE_MAT_ID=-1 (multiple sliding surfaces)

Number of rows:

1 * NUMBER_SLIDING_FACES

Number of parameters:

3

Text format#
* SLIDE_NDIV * SLIDE_MAT_ID * FITNESS
    I             I           E
Type:

Additional parameter set 5 | when STEADY_CURRRENT(2)=1 or when the steady-current eddy-field analysis result is used as the initial value and MULTI≠0

Number of rows:

3

Number of parameters:

5

Text format#
* NO_REGULAR_MESH *
    I
* VELOCITY * REGULAR_NDIV * REGULAR_NMAT *
    E            I              I
* MAT_ID_NOS *
    I

Text examples

  • No periodic boundary condition

Text format#
* CYCLIC  *  SYMMETRICITY * SLIDE_NDIV * SLIDE_MAT_ID * FITNESS * LINE_INPUT * N_CYCLIC * SLIDE_OPTION *
    0
  • For a 90-degree rotationally antiperiodic model: mesh divided into 90 parts in the sliding direction, with MatID=51 specified for the sliding-edge elements

Text format#
* CYCLIC  *  SYMMETRICITY * SLIDE_NDIV * SLIDE_MAT_ID * FITNESS * LINE_INPUT * N_CYCLIC * SLIDE_OPTION *
    2             1            90            51
* ANGLE *
90
  • Multiple sliding surfaces

When there are two sliding surfaces with translational antisymmetry. Specify the sliding surfaces with LINE_INPUT=1.

Text format#
* CYCLIC * SYMMETRICITY * DIVISION * SURFACE_MAT_ID * FITNESS * LINE_INPUT * N_CYCLIC *
    1            1             32         -1           0.1        1       1
* DX * DY * DZ *
0.08  0.0 0.0
* NUMBER_SLIDING_FACES *
        2
* DIVISION * SURFACE_MAT_ID * FITNESS *
    32           31            0.1
* SX * SY * SZ * EX * EY * EZ * MESH_NO *
0.0  0.0  0.0125 0.0 0.06 0.0125   0
* DIVISION * SURFACE_MAT_ID * FITNESS *
    32           32            0.1
* SX * SY * SZ * EX * EY * EZ * MESH_NO *
0.0 0.0 -0.0125 0.0 0.06 -0.0125   0
  • When STEADY_CURRRENT(2)=1 or when the steady-current eddy-field analysis result is used as the initial value and MULTI≠0

Text format#
* NO_REGULAR_MESH *
    0
* VELOCITY * REGULAR_NDIV * REGULAR_NMAT *
    10.0         32             1
* MAT_ID_NOS *
    32

JSON format#

Not required when no periodic boundary condition is used.

Set multiple periodic boundary conditions as an array in PERIODIC_CONDITION. Set multiple sliding surfaces as an array as well.

JSON format from 2024.11#
"14_Periodic_Boundary_Conditions" :
{
    "PERIODIC_CONDITION" :
    [
        {
            "CYCLIC" : I,
            "SYMMETRY" : I,
            "ANGLE" : E,
            "SLIDE_CONDITION" :
            [
                {
                    "SLIDE_NDIV" : E,
                    "SLIDE_MAT_ID" : I,
                    "FITNESS" : E
                }
            ]
        },
        {
            "CYCLIC" : I,
            "SYMMETRY" : I,
            "DXYZ" : [ E, E, E ],
            "SLIDE_CONDITION" :
            [
                {
                    "SLIDE_NDIV" : I,
                    "FITNESS" : E,
                    "LINE_INPUT" :
                    {
                        "MESH_NO" : I,
                        "START_END_XYZ" :
                        [
                            [ E, E, E, E, E, E ]
                        ]
                    }
                }
            ]
        }
    ]
},

JSON examples

  • For a 90-degree rotationally antiperiodic model: mesh divided into 90 parts in the sliding direction, with SLIDE_MAT_ID = 51 specified for the sliding-edge elements

JSON format from 2024.11#
"14_Periodic_Boundary_Conditions" :
{
    "PERIODIC_CONDITION" :
    [
        {
            "CYCLIC" : 2,
            "SYMMETRY" : 1,
            "ANGLE" : 90,
            "SLIDE_CONDITION" :
            [
                {
                    "SLIDE_NDIV" : 90,
                    "SLIDE_MAT_ID" : 51,
                    "FITNESS" : 0.0
                }
            ]
        }
    ]
},
  • Multiple sliding surfaces

When there are two sliding surfaces with translational antisymmetry. Specify the sliding surfaces with LINE_INPUT = 1.

JSON format from 2024.11#
"14_Periodic_Boundary_Conditions" :
{
    "PERIODIC_CONDITION" :
    [
        {
            "CYCLIC" : 1,
            "SYMMETRY" : 1,
            "DXYZ" : [ 0.08, 0.0, 0.0 ],
            "SLIDE_CONDITION" :
            [
                {
                    "SLIDE_NDIV" : 32,
                    "FITNESS" : 0.1,
                    "LINE_INPUT" :
                    {
                        "MESH_NO" : 0,
                        "START_END_XYZ" :
                        [
                            [ 0.0, 0.0, 0.0125, 0.0, 0.06, 0.0125 ]
                        ]
                    }
                },
                {
                    "SLIDE_NDIV" : 32,
                    "FITNESS" : 0.1,
                    "LINE_INPUT" :
                    {
                        "MESH_NO" : 0,
                        "START_END_XYZ" :
                        [
                            [ 0.0, 0.0, -0.0125, 0.0, 0.06, -0.0125 ]
                        ]
                    }
                }
            ]
        }
    ]
},

Steady-current eddy-field analysis (when STEADY_CURRRENT(2) = 1 or when the steady-current eddy-field analysis result is used as the initial value and MULTI ≠ 0)

JSON format from 2024.11#
"14_2_Regular_Mesh_Condition_for_STEADY_CURRENT" :
    [
            {
                    "VELOCITY" : 10.0,
                    "REGULAR_NDIV" : 32,
                    "REGULAR_MAT_IDS" : [ 1 ]
            }
    ]

Detailed description#

14_Periodic_Boundary_Conditions#

14_Periodic_Boundary_Conditions#
JSON key:

Periodic boundary condition object

PERIODIC_CONDITION#

PERIODIC_CONDITION(14)#
JSON key:

Periodic boundary condition settings object

CYCLIC#

CYCLIC(14)#
Text-format section
Fixed parameter set 1#
[row, col] = [1, 1]
Sets the periodic boundary condition#

Value

Description

0 Default value

No periodic boundary condition.

1

Translational periodic symmetry.

2

Rotational periodic symmetry.

3

Symmetric with respect to rotational periodicity and z inversion.

4

Helical periodic symmetry.

Note

Revision history

Release 11.3.1

Added the helical periodic boundary condition.

SYMMETRY#

SYMMETRY(14)#
Text-format section
Fixed parameter set#
[row, col] = [1, 2]
Sets periodic and antiperiodic boundary conditions when CYCLIC(14) > 0.#

Value

Description

0 Default value

Periodic boundary condition. The magnetic-field/electric-field direction does not change under the symmetry transformation.

1

Antiperiodic boundary condition. The magnetic-field/electric-field direction is reversed under the symmetry transformation.

Text-format section
N_CYCLIC(14)#

N_CYCLIC

Fixed parameter set#
[row, col] = [1, 7]
Type=I (1, 2, 3)

Sets multiple periodic boundary conditions when CYCLIC > 0.

Default value = 1

Translational periodic boundary condition (when CYCLIC=1)#

DXYZ#

DXYZ(14)#
Text-format section

DX/DY/DZ

Fixed parameter set#
[row, col] = [2, 1~3]
Type:

Real-number array (E)

Unit:

m

Description:

Mesh length in the translation direction for one period.

When DX = 0.08 m, motion is set in the X direction, and the value matches the mesh length in the X direction.

In JSON format, enter as an array.

Note

When DXYZ = [0.08, 0.0, 0.0], motion is set in the X direction, and the value matches the mesh length in the X direction.

Rotational periodic boundary condition (when CYCLIC=2 or 3)#

ANGLE#

ANGLE(14)#
Text-format section
Fixed parameter set#
[row, col] = [2, 1]
Type:

Real number (E)

Unit:

deg

Value:

0 ~ 360

Description:

Mesh angle for one rotational period.

When ANGLE = 90 deg, the mesh covers 90 degrees.

SEPARATE_ANGLE#

SEPARATE_ANGLE(14)#
Text-format section
Fixed parameter set#
[row, col] = [3, 1]
Type=E (0 ~ 360)

Required when ANGLE = 180 for 180-degree rotational periodic symmetry.

Type:

Real number (E)

Unit:

deg

Value:

0 ~ 360

Description:

Angle used to distinguish rotational periodic boundary surfaces.

Beyond this angle, only one of the rotational periodic boundary surfaces must exist. If the mesh is defined between 0 and 180 degrees without skew, 90 degrees is sufficient. This applies to the input meshes for both the stationary and moving parts.

Note

When SEPARATE_ANGLE = 90 deg, one rotational periodic boundary surface must exist from 0 to 90 degrees and the other from 90 to 180 degrees.

When SEPARATE_ANGLE = 0 deg, one rotational periodic boundary surface must exist from -90 to 0 degrees and the other from 0 to 90 degrees.

Caution

If the mesh skew angle exceeds 180 degrees, analysis is not possible and the boundary surfaces must be redefined.

SEPARATE_ANGLE description#

../../_images/separate_angle_fig.png

Helical periodic boundary condition (when CYCLIC=4)#

DXYZ#

DXYZ(14)#
Text-format section

DX/DY/DZ

Fixed parameter set#
[row, col] = [2, 1~3]
Type:

Real-number array (E)

Unit:

m

Description:

Mesh length in the helical translation direction for one period.

However, because the angular displacement is specified by PITCH, specify the component excluding the angular displacement.

When DX = 0.01 m, the value matches the mesh length in the X direction.

In JSON format, enter as an array.

PITCH#

PITCH(14)#
Text-format section
Fixed parameter set#
[row, col] = [2, 4]
Type:

Real number (E)

Unit:

m

Description:

Twist-pitch length in the helical translation direction for one period.

The twist pitch is the length over which the translational periodic boundary condition is satisfied.

PITCH > 0: right-hand screw direction; < 0: left-hand screw direction.

When modeling six twisted wires, PITCH = 0.06 m = DX: 0.01*6.

DEFORM#

DEFORM(14)#
Text-format section
Fixed parameter set#
[row, col] = [2, 5]

Use this to twist a model along a straight line internally. Set it to 0 when the input model is already twisted into a helical shape.

DEFORM settings#

Value

Description

0

No internal helical deformation. Default value

1

With internal helical deformation.

Note

To twist a two-dimensional model into a single helical layer, specify the z-direction length in DELTA_Z_THETA as in a normal two-dimensional analysis and set DEFORM = 1. DEFORM does not work for a model extruded by one layer with 2D_to_3D.

DEFORM works effectively for three-dimensional models and models converted to three dimensions with 2D_to_3D. The 2D_to_3D function also supports extrusion while twisting the model into a helical shape.

Description of the helical periodic boundary condition#

../../_images/herical_fig.png

When setting sliding motion (MOTION=2)#

JSON key:

Periodic boundary condition settings object

SLIDE_NDIV#

SLIDE_NDIV(14)#
Text-format section
Fixed parameter set#
[row, col] = [1, 3]
Type:

Integer (I)

Description:

Number of divisions in the motion direction during sliding-motion analysis ( MOTION(2) = 2). The best accuracy is obtained when it matches the mesh division count. The division counts and positions may differ between the stationary side (stator) and moving side (rotor).

Note

Set SLIDE_NDIV so that the maximum mesh-element width in the motion direction on the sliding surfaces of the stationary and moving sides is approximately one period (mesh region) divided by this value. Be careful: an excessively large value can make the result indeterminate.

SLIDE_MAT_ID#

SLIDE_MAT_ID(14)#
Text-format section
Fixed parameter set#
[row, col] = [1, 4]

In text input, enter an appropriate positive ID when LINE_INPUT = 1. It is not required in JSON format; enter the LINE_INPUT key instead.

<For text input>

  • =-1: Specify multiple sliding surfaces

Type:

Integer (I)

Description:

During sliding-motion analysis ( MOTION(2) = 2), specifies the sliding edges (when using a three-dimensional mesh) or sliding points (when using a two-dimensional mesh) by material ID.

The sliding edges or points must be defined as line elements in the file rotor_mesh or as point elements in rotor_mesh2D.

Note

The order and direction of the sliding edges are arbitrary, but they must be connected at their nodes. In rotational motion, the start and end points of a sequence of edges may lie on the axis. In this case, the surfaces on the stator and rotor sliding surfaces must be divided radially from the axis into approximately SLIDE_NDIV parts.

FITNESS#

FITNESS(14)#
Text-format section
Fixed parameter set#
[row, col] = [1, 5]
Type:

Real number (E)

Unit:

m

Description:

When the moving-side and stationary-side meshes coincide, they are treated as exactly coincident when their position difference is no greater than FITNESS times the mesh spacing in the motion direction. Approximately 0.01 is appropriate. Specify this when the calculation position is where the moving and stationary meshes overlap. Otherwise, set it to 0.

Note

Because meshes within FITNESS of each other are treated as overlapping, set FITNESS to a sufficiently small value or 0 when the mesh is finely divided.

LINE_INPUT#

LINE_INPUT(14)#
Text-format section
Fixed parameter set#
[row, col] = [1, 6]
Sliding-edge line-segment specification#

Value

Description

0

Do not specify. Default value

1

Treat the sliding edges as lying on line segments and enter the line segments.

Set the following parameters.

In JSON format, enter as an array.

START_END_XYZ#
START_END_XYZ(14)#
Text-format section

SX/SY/SZ, EX/EY/EZ

Fixed parameter set#
[row, col] = [1, 1~6]
Type:

Real-number array (E)

Unit:

m

Description:

Specify the sliding surface by the line segment on which the sliding edges lie. The edges formed by the mesh in the mesh file corresponding to MESH_NO must lie on and be connected along this line segment.

Note

“START_END_XYZ” = [SX, SY, SZ, EX, EY, EZ]

  • SX/SY/SZ: XYZ coordinates of the start point of the line segment

  • EX/EY/EZ: XYZ coordinates of the end point of the line segment

MESH_NO#
MESH_NO(14)#
Text-format section
Fixed parameter set#
[row, col] = [1, 7]
Number of the mesh file defining the sliding edges#

Value

Description

0

pre_ geom

1

rotor_mesh

2

rotor_mesh2

Text-format section
NO_LINES(14)#

NO_LINES

Fixed parameter set#
[row, col] = [1, 8]
Type=I

Number of line segments forming the polyline that defines the sliding edges.

When NO_LINES > 1, repeatedly enter SX/SY/SZ and EX/EY/EZ ( START_END_XYZ ) NO_LINES -1 times.

When specifying multiple sliding surfaces (text input SLIDE_MAT_ID=-1)#

NUMBER_SLIDING_FACES(14)#

In JSON format, enter as an array.

Text-format section

NUMBER_SLIDING_FACES (for text input)

Fixed parameter set#
[row, col] = [1, 1]
Type=I

Number of sliding surfaces

Enter SLIDE_NDIV and SLIDE_MAT_ID, or LINE_INPUT and FITNESS, for NUMBER_SLIDING_FACES sets.

14_2_Regular_Mesh_Condition_for_STEADY_CURRENT#

14_2_Regular_Mesh_Condition_for_STEADY_CURRENT#
JSON key:

Steady-current eddy-field analysis condition object

When STEADY_CURRRENT(2)=1 or when the steady-current eddy-field analysis result is used as the initial value and MULTI≠0

Text-format section

REGULAR_MESH (for text input)

Fixed parameter set#

Enter VELOCITY, REGULAR_NDIV, REGULAR_NMAT, and MAT_ID_NOS for NO_REGULAR_MESH sets.

VELOCITY#

VELOCITY(14)#
Text-format section
Fixed parameter set#
[row, col] = [1, 1]
Type:

Real number (E)

Unit:

m/s

Description:

Velocity of the moving conductor.

REGULAR_NDIV#

REGULAR_NDIV(14)#
Text-format section
Fixed parameter set#
[row, col] = [1, 2]
Type:

Integer (I)

Description:

Number of equal divisions in the moving-conductor direction. Make it match the number of mesh divisions in the moving-conductor direction.

REGULAR_NMAT#

REGULAR_NMAT(14)#
Text-format section
Fixed parameter set#
[row, col] = [1, 3]
Type:

Integer (I)

Description:

Number of material IDs for the moving conductor.

MAT_ID_NOS#

MAT_ID_NOS(14)#
Text-format section
Fixed parameter set#
[row, col] = [1, 4]
Type:

Integer array (I)

Description:

List of material IDs for the moving conductor. Specify material IDs for which conductivity has been assigned.