17.7 Magnetization-Vector Source#
Defines permanent magnets in finite elements using a magnetization vector. MAGNET is a source term that specifies the magnetization vector of permanent magnets.
Input settings#
MAGNET(17.7) JSON key: magnetization-vector source object
SERIES_ID(17.7) Series ID.
INPUT_TYPE(17.7)Option for specifying the magnetization vector.Uniform magnetization input
MAT_ID(17.7.1)Property ID of the target region.
COORD_ID(17.7.1)Coordinate system of the magnetization vector.
MXYZ(17.7.1)Components of the magnetization vector.
CHECK_PERMEANCE(17.7.1)Permeance used to calculate the demagnetized volume of a permanent magnet.Element-by-element magnetization input
MAT_ID(17.7.2)Property ID of the target region.
COORD_ID(17.7.2)Coordinate system of the magnetization vector.
READ_OPTION(17.7.2)Magnetization-vector read option.
ELEM_ID(17.7.2)Element ID.
MXYZ(17.7.2)Components of the magnetization vector.
INITIAL_MAGNETIZATION_FILE_NAME(17.7.2)File name providing the initial magnetization vectors defined in ATLAS format. Default file name: initial_magnetization.dat.Sinusoidal-function input
NO_POLES(17.7.3)Number of poles of the magnetization vector.
ANGLE(17.7.3)Reference angle of the magnetization vector.
ORDERS(17.7.3)Harmonic orders of the magnetization vector.
AMPLITUDE(17.7.3)Normalized amplitude for each ORDERS value of the magnetization vector.
MAT_ID(17.7.3)Material ID assigned to the region.
COORD_ID(17.7.3)Coordinate system of the magnetization vector.
MXYZ(17.7.3)Components of the magnetization vector.Equation input
MAT_ID(17.7.4)Material ID assigned to the region.
COORD_ID(17.7.4)Coordinate system of the magnetization vector.Nonlinear analysis using a permanent-magnet demagnetization curve
MAT_ID(17.7.5)Material ID assigned to the region.
TYPE(17.7.5)Analysis option using a permanent-magnet demagnetization curve.
BH_MAGNET_CURVE_ID(17.7.5)Demagnetization-curve ID.
MU(17.7.5)Relative permeability in the hard-magnetization direction.
COORD_ID(17.7.5)Coordinate system of the magnetization vector.
MXYZ(17.7.5)Components of the magnetization vector.
Input format#
Text-format section
- Type:
Fixed parameter set 1
- Number of lines:
1
- Number of parameters:
4
* MAGNET * SERIES_ID * TIME_ID * NO_MAT_ID *
MAGNET I I I
JSON format#
"17_Field_Source" :
[
{
"MAGNET" :
{
"SERIES_ID" : I,
"TIME_ID" : I,
"INPUT_TYPE" : I,
"data" :
[
{
"MAT_ID" : I,
"COORD_ID" : I,
"MXYZ" : [ E, E, E ]
}
]
}
}
]
Detailed description#
MAGNET defines permanent magnets in the finite-element mesh using magnetization vectors.
MAGNET#
- MAGNET(17.7)#
JSON key: magnetization-vector source object
Text-format section
[row, col] = [1, 1]
- Type:
String (S)
- Description:
Specifies the magnetization-vector source
MAGNET.
SERIES_ID#
- SERIES_ID(17.7)#
Text-format section
[row, col] = [1, 2]
- Type:
Integer (I)
- Description:
Source-term identifier.
TIME_ID#
- TIME_ID(17.7)#
Text-format section
[row, col] = [1, 3]
- Type:
Integer (I)
- Description:
Time-definition ID used when a time-dependent source is specified.
TIME_ID(17.6)
For constant magnetization, set the time-definition ID TIME_ID(17.6) that provides the constant value.
Text-format section
NO_MAT_ID (text format only)
[row, col] = [1, 4]
Type=I
For INPUT_TYPE = 0, 2, 3, or 4, the number of material IDs for elements to which magnetization vectors are assigned. For INPUT_TYPE = 1, the number of elements to which magnetization vectors are assigned.
INPUT_TYPE#
- INPUT_TYPE(17.7)#
Text-format section
[row, col] = [1, 5]
Value |
Description |
|---|---|
0 |
Assigns a uniform magnetization vector for each material ID. |
1 |
Assigns a magnetization vector to each element. Only one material ID is used. When |
2 |
Assigns sinusoidal-function input for each material ID. |
3 |
Assigns equation input for each material ID. |
4 |
Performs nonlinear analysis using a demagnetization curve. |
5 |
Performs nonlinear analysis using a temperature-dependent demagnetization curve. |
Caution
Using =4 requires the <PM Demagnetization module>.
Using =4 or 5 requires the <TEMP_DEPEND module>.
data#
- data(17.7)#
- JSON key:
Magnetization-vector source data
In JSON format, enter the data specified by INPUT_TYPE in data.
data is an array with one entry for each MAGNET element.
17.7.1 Uniform magnetization input#
When INPUT_TYPE = 0, specify a magnetization vector for each material ID.
Text-format section
- Type:
Fixed parameter set 1
- Number of lines:
1
- Number of parameters:
5
* MAT_ID * COORD_ID * MX or MR * MY or MT * MZ * CHECK_PERMEANCE *
2 1 1 0 0 4.2
"data" :
[
{
"MAT_ID" : 2,
"COORD_ID" : 1,
"MXYZ" : [ 1.0, 0.0, 0.0 ],
"CHECK_PERMEANCE" : 4.2
}
]
MAT_ID#
- MAT_ID(17.7.1)#
Text-format section
[row, col] = [2, 1]
- Type:
Integer (I)
- Description:
Material ID of the elements to which the magnetization vector is assigned (
MAT_ID(16.1)).
COORD_ID#
- COORD_ID(17.7.1)#
Text-format section
[row, col] = [2, 2]
- Type:
Integer (I)
- Description:
Local coordinate system in which the magnetization vector is defined (
COORD_ID(12)).
MXYZ#
- MXYZ(17.7.1)#
Text-format section
[row, col] = [3, 1]
- Type:
Real array (E)
- Number:
3
- Unit:
T
- Description:
Magnetization-vector components in each direction of the local coordinate system.
CHECK_PERMEANCE#
- CHECK_PERMEANCE(17.7.1)#
Text-format section
[row, col] = [2, 6]
- Type:
Real (E)
- Description:
Permeance used to calculate the demagnetized volume of the permanent magnet.
Note
CHECK_PERMEANCE is enabled by setting CHECK_PERMEANCE in 11. Output Options to On. The output file then reports (magnet volume - demagnetized magnet volume) / magnet volume as the fraction of the magnet volume that has not been classified as demagnetized at operating points below CHECK_PERMEANCE.
17.7.2 Element-by-element magnetization input#
When INPUT_TYPE = 1, specify a magnetization vector for each element.
Text-format section
- Type:
Fixed parameter set 1
- Number of lines:
1
- Number of parameters:
5
* MAGNET * SERIES_ID * TIME_ID * NO_MAT_ID * INPUT_TYPE *
MAGNET 1 1 2 1
* MAT_ID * COORD_ID * READ_OPTION *
1 0 0
* ELM_ID * MX or MR * MY or MT * MZ *
1 0 0 1
2 0 0 1
"MAGNET" :
{
"SERIES_ID" : 1,
"TIME_ID" : 1,
"INPUT_TYPE" : 1,
"comment" : "Linear magnetization vector input",
"MAT_ID" : 1,
"COORD_ID" : 0,
"READ_OPTION" : 0,
"data" :
[
{
"ELEM_ID" : 1,
"MXYZ" : [ 0.0, 0.0, 1.0 ]
},
{
"ELEM_ID" : 2,
"MXYZ" : [ 0.0, 0.0, 1.0 ]
}
]
}
MAT_ID#
- MAT_ID(17.7.2)#
Text-format section
[row, col] = [2, 1]
- Type:
Integer (I)
- Description:
Material ID of the elements to which the magnetization vector is assigned (
MAT_ID(16.1)).
COORD_ID#
- COORD_ID(17.7.2)#
Text-format section
[row, col] = [2, 2]
- Type:
Integer (I)
- Description:
Local coordinate system in which the magnetization vector is defined (
COORD_ID(12)).
READ_OPTION#
- READ_OPTION(17.7.2)#
Text-format section
[row, col] = [2, 3]
Value |
Description |
|---|---|
0 |
Define this in the input file. |
1 |
Specifies the file name containing the initial magnetization vectors defined in ATLAS format. Default file name: initial_magnetization.dat. |
When READ_OPTION = 0, enter the following data.
ELEM_ID#
- ELEM_ID(17.7.2)#
Text-format section
[row, col] = [2, 1]
- Type:
Integer (I)
- Description:
Element number in the input mesh data.
MXYZ#
- MXYZ(17.7.2)#
Text-format section
[row, col] = [2, 2]
- Type:
Real array (E)
- Number:
3
- Unit:
T
- Description:
Magnetization-vector components in each direction of the local coordinate system.
When READ_OPTION = 1, enter the following data.
INITIAL_MAGNETIZATION_FILE_NAME (JSON format)#
- INITIAL_MAGNETIZATION_FILE_NAME(17.7.2)#
File name containing the initial magnetization vectors defined in ATLAS format. Default file name: initial_magnetization.dat.
17.7.3 Sinusoidal-function input#
When INPUT_TYPE = 2, specify sinusoidal-function input for each material ID.
Text-format section
- Type:
Fixed parameter set 1
- Number of lines:
2 + NO_DATA
- Number of parameters:
5
* NO_ORDERS * NO_POLES * ANGLE(deg) *
1 4 45.00
* ORDER * AMPLITUDE *
1 1.000000000
* MAT_ID * COORD_ID * MX or MR * MY or MT * MZ *
101 0 1 0 0
102 0 0 1 0
103 0 -1 0 0
104 0 0 -1 0
"MAGNET" :
{
"SERIES_ID" : 1,
"TIME_ID" : 1,
"INPUT_TYPE" : 2,
"comment" : "Linear magnetization by sin function input",
"NO_POLES" : 4,
"ANGLE" : 45.0,
"ORDERS" : [ 1 ],
"AMPLITUDES" : [ 1.0 ],
"data" :
[
{
"MAT_ID" : 101,
"COORD_ID" : 0,
"MXYZ" : [ 1.0, 0.0, 0.0 ]
},
{
"MAT_ID" : 102,
"COORD_ID" : 0,
"MXYZ" : [ 0.0, 1.0, 0.0 ]
},
{
"MAT_ID" : 103,
"COORD_ID" : 0,
"MXYZ" : [ -1.0, 0.0, 0.0 ]
},
{
"MAT_ID" : 104,
"COORD_ID" : 0,
"MXYZ" : [ 0.0, -1.0, 0.0 ]
}
]
}
Text-format section
NO_POLES#
- NO_POLES(17.7.3)#
Text-format section
[row, col] = [1, 2]
- Type:
Integer (I)
- Description:
Number of magnetic poles (for one 360-degree revolution).
ANGLE#
- ANGLE(17.7.3)#
Text-format section
[row, col] = [1, 3]
- Type:
Real (E)
- Unit:
deg
- Description:
Reference angle.
ORDERS#
- ORDERS(17.7.3)#
Text-format section
[row, col] = [2, 1]
- Type:
Integer array (I)
- Number:
NO_ORDERS = number of harmonic orders to consider
- Description:
Harmonic order.
AMPLITUDE#
- AMPLITUDE(17.7.3)#
Text-format section
[row, col] = [2, 2]
- Type:
Real array (E)
- Number:
NO_ORDERS = number of harmonic orders to consider
- Description:
Normalized amplitude for each
ORDERSvalue.
MAT_ID#
- MAT_ID(17.7.3)#
Text-format section
[row, col] = [3, 1]
- Type:
Integer (I)
- Description:
Material ID of the elements to which the magnetization vector is assigned (
MAT_ID(16.1)).
COORD_ID#
- COORD_ID(17.7.3)#
Text-format section
[row, col] = [3, 2]
- Type:
Integer (I)
- Description:
Local coordinate system in which the magnetization vector is defined (
COORD_ID(12)).
MXYZ#
- MXYZ(17.7.3)#
Text-format section
[row, col] = [3, 3]
- Type:
Real array (E)
- Number:
3
- Unit:
T
- Description:
Magnetization-vector components in each direction of the local coordinate system.
Note
Definition: The input sinusoidal function is given by the following equation.
Here, \(\mathbf{M}_{rs}\) is ( MXYZ ), \(k\) is ORDERS, \(b_k\) is AMPLITUDE, and \(m\) is NO_POLES. Note that \(k_{\text{max}}\) is the maximum harmonic order and NO_ORDERS is the number of orders entered. \(\theta_0\) is the reference angle ANGLE in the cylindrical coordinate system and corresponds to the positions where the magnetization reverses (between magnetic poles). \(\theta\) is the angle of the element center in the cylindrical coordinate system.
The magnetization orientation can be specified as radial orientation (the radial direction in a cylindrical coordinate system) or parallel orientation (an arbitrary direction in a Cartesian coordinate system). The selected orientation corresponds to the coordinate system assigned by COORD_ID on line 3. Although the equation above contains only odd-order components, even-order components can also be entered. The example below shows data for the illustrated model with four magnetic poles, a reference angle of 45 degrees, and radial orientation up to harmonic order 5 (odd orders only). COORD_ID = 1 on line 2 is the ID of the local cylindrical coordinate system.
Example definition of a magnetization distribution#
SOURCES Definitions
Text-format section
SOURCE
* MAGNET * SERIES_ID * TIME_ID * NO_MAT_ID * INPUT_TYPE *
MAGNET 1 1 4 2
* NO_ORDERS * NO_POLES * ANGLE(deg) *
3 4 45.
* ORDER * AMPLITUDE *
1 1.0
3 0.25
5 0.05
* MAT_ID * COORD_ID * MX(MR) * MY(MT) * MZ *
101 1 1.0 0.0 0.0
* MAT_ID * COORD_ID * MX(MR) * MY(MT) * MZ *
102 1 1.0 0.0 0.0
* MAT_ID * COORD_ID * MX(MR) * MY(MT) * MZ *
103 1 1.0 0.0 0.0
* MAT_ID * COORD_ID * MX(MR) * MY(MT) * MZ *
104 1 1.0 0.0 0.0
END
"MAGNET" :
{
"SERIES_ID" : 1,
"TIME_ID" : 1,
"INPUT_TYPE" : 2,
"NO_ORDERS" : 3,
"NO_POLES" : 4,
"ANGLE" : 45.0,
"ORDERS" : [ 1, 3, 5 ],
"AMPLITUDES" : [ 1.0, 0.25, 0.05 ],
"data" :
[
{
"MAT_ID" : 101,
"COORD_ID" : 1,
"MXYZ" : [ 1.0, 0.0, 0.0 ]
},
{
"MAT_ID" : 102,
"COORD_ID" : 1,
"MXYZ" : [ 1.0, 0.0, 0.0 ]
},
{
"MAT_ID" : 103,
"COORD_ID" : 1,
"MXYZ" : [ -1.0, 0.0, 0.0 ]
},
{
"MAT_ID" : 104,
"COORD_ID" : 1,
"MXYZ" : [ -1.0, 0.0, 0.0 ]
}
]
}
17.7.4 Equation input#
When INPUT_TYPE = 3, specify an equation for each material ID.
Text-format section
- Type:
Fixed parameter set 2
- Number of lines:
3 (equation format)
- Number of parameters:
* MXYZ(x,y,z) * xyz(m) *
M(x,y,z)=0;;
theta(x,y,z) = atan2(y,x);
M(x,y,z)=sin(2*(theta(x,y,z)-(PI/4)));;
M(x,y,z)=0;;
* MAT_ID * COORD_ID *
102 0
* MAGNET * SERIES_ID * TIME_ID * NO_MAT_ID * INPUT_TYPE *
MAGNET 1 1 1 3
* MXYZ(x,y,z) * xyz(m) *
theta(x,y,z) = atan2(y,x);
M(x,y,z)=-sin(2*(theta(x,y,z)-(PI/4)));;
M(x,y,z)=0;;
M(x,y,z)=0;;
* MAT_ID * COORD_ID *
103 0
* MAGNET * SERIES_ID * TIME_ID * NO_MAT_ID * INPUT_TYPE *
MAGNET 1 1 1 3
* MXYZ(x,y,z) * xyz(m) *
M(x,y,z)=0;;
theta(x,y,z) = atan2(y,x);
M(x,y,z)=-sin(2*(theta(x,y,z)-(PI/4)));;
M(x,y,z)=0;;
* MAT_ID * COORD_ID *
104 0
END
{
"MAGNET" :
{
"SERIES_ID" : 1,
"TIME_ID" : 1,
"INPUT_TYPE" : 3,
"FUNCTION_MX" : "M(x,y,z)=0;;",
"FUNCTION_MY" : "theta(x,y,z) = atan2(y,x);M(x,y,z)=sin(2*(theta(x,y,z)-(PI/4)));;",
"FUNCTION_MZ" : "M(x,y,z)=0;;",
"data" :
[
{
"MAT_ID" : 102,
"COORD_ID" : 0
}
]
}
},
{
"MAGNET" :
{
"SERIES_ID" : 1,
"TIME_ID" : 1,
"INPUT_TYPE" : 3,
"FUNCTION_MX" : "theta(x,y,z) = atan2(y,x);M(x,y,z)=-sin(2*(theta(x,y,z)-(PI/4)));;",
"FUNCTION_MY" : "M(x,y,z)=0;;",
"FUNCTION_MZ" : "M(x,y,z)=0;;",
"data" :
[
{
"MAT_ID" : 103,
"COORD_ID" : 0
}
]
}
},
{
"MAGNET" :
{
"SERIES_ID" : 1,
"TIME_ID" : 1,
"INPUT_TYPE" : 3,
"FUNCTION_MX" : "M(x,y,z)=0;;",
"FUNCTION_MY" : "theta(x,y,z) = atan2(y,x);M(x,y,z)=-sin(2*(theta(x,y,z)-(PI/4)));;",
"FUNCTION_MZ" : "M(x,y,z)=0;;",
"data" :
[
{
"MAT_ID" : 104,
"COORD_ID" : 0
}
]
}
}
FUNCTION_MX, FUNCTION_MY, FUNCTION_MZ#
- FUNCTION_MX(17.7.4)#
- FUNCTION_MY(17.7.4)#
- FUNCTION_MZ(17.7.4)#
Enter the components MX(x,y,z), MY(x,y,z), and MZ(x,y,z) of the magnetization distribution function M(Mx,My,Mz) as equations ( Appendix I ).
MAT_ID#
- MAT_ID(17.7.4)#
Text-format section
[row, col] = [2, 1]
- Type:
Integer (I)
- Description:
Material ID of the elements to which the magnetization vector is assigned (
MAT_ID(16.1)).
COORD_ID#
- COORD_ID(17.7.4)#
Text-format section
[row, col] = [2, 2]
- Type:
Integer (I)
- Description:
Local coordinate system in which the magnetization vector is defined (
COORD_ID(12)).
Note
The example described by the sinusoidal-input equation in 17.7.3 is equivalent to the following input.
Text-format section
*SOURCES Definitions*
SOURCE
* MAGNET * SERIES_ID * TIME_ID * NO_MAT_ID * INPUT_TYPE *
MAGNET 1 1 4 3
* FUNCTION MX(x,y,z) * x(m) or x(m) *
MX(x,y,z)=sin(2*(y-(PI/4)))+0.25*sin(6*(y-(PI/4)))+0.05*sin(10*(y-(PI/4)));;
* FUNCTION MY(x,y,z) * y(m) or y(rad) *
MY(x,y,z)=0;;
* FUNCTION MZ(x,y,z) * z(m) or z(m) *
MZ(x,y,z)=0;;
* MAT_ID * COORD_ID *
101 1
* MAT_ID * COORD_ID *
102 1
* MAT_ID * COORD_ID *
103 1
* MAT_ID * COORD_ID *
104 1
END
{
"MAGNET" :
{
"SERIES_ID" : 1,
"TIME_ID" : 1,
"INPUT_TYPE" : 3,
"FUNCTION_MX" : "MX(x,y,z)=sin(2*(y-(PI/4)))+0.25*sin(6*(y-(PI/4)))+0.05*sin(10*(y-(PI/4)));;",
"FUNCTION_MY" : "MY(x,y,z)=0;;",
"FUNCTION_MZ" : "MZ(x,y,z)=0;;",
"data" :
[
{
"MAT_ID" : 101,
"COORD_ID" : 1
},
{
"MAT_ID" : 102,
"COORD_ID" : 1
},
{
"MAT_ID" : 103,
"COORD_ID" : 1
},
{
"MAT_ID" : 104,
"COORD_ID" : 1
}
]
}
}
When INPUT_TYPE = 4, specify nonlinear analysis using a permanent-magnet demagnetization curve for each material ID.
Text-format section
- Type:
Fixed parameter set 1
- Number of lines:
2
- Number of parameters:
3, 4
* MAT_ID * TYPE * BH_MAGNET_CURVE_ID * MU *
I I I E
* COORD_ID * MX or MR * MY or MT * MZ *
I E E E
"data" :
[
{
"MAT_ID" : I,
"TYPE" : I,
"BH_MAGNET_CURVE_ID" : I,
"MU" : E,
"INPUT_TYPE" : I,
"COORD_ID" : I,
"MXYZ" : [ E, E, E ]
}
]
MAT_ID#
- MAT_ID(17.7.5)#
Text-format section
[row, col] = [1, 1]
- Type:
Integer (I)
- Description:
Material ID of the elements to which the magnetization vector is assigned (
MAT_ID(16.1)).
TYPE#
- TYPE(17.7.5)#
Text-format section
[row, col] = [1, 2]
Value |
Description |
|---|---|
0 |
Performs nonlinear analysis using a permanent-magnet demagnetization curve. |
1 |
Performs demagnetization analysis using a permanent-magnet demagnetization curve. |
BH_MAGNET_CURVE_ID#
- BH_MAGNET_CURVE_ID(17.7.5)#
Text-format section
[row, col] = [1, 3]
- Type:
Integer (I)
- Description:
ID of the demagnetization curve. Define the curve with
20_4_Magnet_Demagnetization_Curve(20).Nonlinear analysis (
NON_LINEAR(2)= 1) is required.
MU#
- MU(17.7.5)#
Text-format section
[row, col] = [1, 4]
- Type:
Real (E)
- Description:
Specifies the relative permeability in the hard-magnetization direction.
COORD_ID#
- COORD_ID(17.7.5)#
Text-format section
[row, col] = [2, 1]
- Type:
Integer (I)
- Description:
Local coordinate system in which the magnetization vector is defined (
COORD_ID(12)).
MXYZ#
- MXYZ(17.7.5)#
Text-format section
[row, col] = [2, 2]
Type=E
- Type:
Real array (E)
- Number:
3
- Unit:
T
- Description:
Magnetization-vector components in each direction of the local coordinate system.
Set
TIME_ID(17.7)to 1 (constant). The last data point in20_4_Magnet_Demagnetization_Curve(20)is used as the magnetization.
Note
When
TYPE= 1, nonlinear analysis follows the demagnetization curve, so demagnetization is not performed.When
TYPE= 2, the operating point moves down along the demagnetization curve and uses the recoil permeability when it moves back up. The history is
saved in the demagnetization_solution file and used in a restart calculation after being renamed to old_demagnetization_solution.
To analyze the temperature dependence of a demagnetization curve, use a restart calculation and replace 20_4_Magnet_Demagnetization_Curve(20) with data for the temperature to be analyzed.
Hint
Set the magnetization direction of the magnet to one of the X, Y, or Z directions. For example, if a permanent magnet is located at 45 degrees from the X axis, define a local coordinate system in which the 45-degree direction is the X or Y direction, and assign its ID to COORD_ID(17.7.5) to set the magnetization direction.
Using this feature requires the <PM Demagnetization module>.