Dealing with non-convergence
Sometimes, non-linear EMDtool
iterations may not converge. The following steps may help:
Check that the model settings are correct
For instance, that your mesh is not broken, or that your supply is not off by an order of magnitude and trying to drive 100 Teslas.
Tweak BH data
Giving the keyword argument 'monotonicity_factor'
and a value above zero and below 1, to functions such as SteelLibrary.create
or more directly to Material.initialize_material_data
often results in much better convergence behaviour.
Increase the number of iterations
Sometimes, setting the maxIter
property of SimulationParameters
is enough.
Increase the number of damping iterations
Increasing the maximum_damping_iterations
property of SimulationParameters
can also help.
Fit an analytical BH curve
The SteelLibrary
class has a method for fitting an analytical BH curve to the given data. Analytical curves are often more well-behaving.
The fitting can be performed by calling the SteelLibrary.create
method with the 'fit_analytical_BH', true
argument-pair, or manually by calling SteelLibrary.generate_BH_langevin
.