Skip to content

CHANGELOG

3.1.x

Added

  • Added analysis_mode (FAST / FULL) and switching_mode (LITE / DETAIL) to transient_analysis(). waveform_analysis() has been merged into it.
  • Added PowerAnalysisOptions. The settings of power_analysis() are specified via this class.
  • Added SwitchingMode (the successor to PowerAnalysisMode).
  • Added AnalysisCondition.fast_tail and fet_lite.
  • Added part_type(), attribute() / set_attribute(), valid_outputs(), and valid_parameters() to Converter.
  • SwitchingMode.LITE (the lite FET model) now supports SiC / IGBT.
  • Added the exception SimulationError, which represents a simulation error during the analysis (state over and so on). It can be caught with try/except, and you can obtain the type and message of the error from e.error.
  • Added ScideampyError, the base class of the exceptions raised by scideampy. Use it when you want to catch the exceptions originating from this library together.

Changed

  • Renamed update_parameter() → carry_over_state().
  • Renamed the arguments of set_analysis_condition(): divta → damped_step_subdiv, divtw → sine_step_subdiv, fctta → step_repetition_factor, divtprf → loss_long_step_subdiv, divtmdl → loss_short_step_subdiv.
  • The settings arguments of power_analysis() / fra() are keyword-only (options=...). Specifying them as positional arguments is not possible.
  • FraOptions and PowerAnalysisOptions are frozen. Attribute assignment after instance creation is not possible.
  • set_parameter() raises ValueError when the parameter name is invalid (when the symbol is invalid it raises RuntimeError as before).
  • Embedded hints about the valid output candidates in the RuntimeError of add_output().
  • When a simulation error occurs during an analysis (transient_analysis() / steady_state_analysis() / power_analysis()), SimulationError is raised. When a handler is registered with with_error_handler(), the error is notified to the callback as before and SimulationError is not raised.

Fixed

  • Fixed the problem that files could not be handled with paths containing non-ASCII characters such as Japanese. On Windows, a path that contains characters that do not exist in the system character encoding results in a RuntimeError.

Removed

  • Removed waveform_analysis(). Migrate to transient_analysis(time, analysis_mode=AnalysisMode.FULL).
  • Removed AnalysisCondition.fet_crss and igbt_cres. They are now always treated as enabled on the engine side, and the settings cannot be changed.
  • Removed the fet_crss and igbt_cres arguments of set_analysis_condition().
  • Removed PowerAnalysisMode from directly under scideampy. The successor is SwitchingMode. If you want to reference it by the old name, use from scideampy.legacy import PowerAnalysisMode.
  • Removed Converter.enable_error_handler() / Converter.disable_error_handler(). Because error notification is enabled automatically, they are unnecessary.

Migration from the old API (scideampy.legacy)

⚠️ scideampy.legacy is scheduled to be removed in a future major version (4.0). Please use the main 3.1 API for new code. We also recommend migrating existing code progressively.

Most of the 3.0 API is frozen in scideampy.legacy. It works as before by rewriting the import path.

# 3.0
from scideampy import Converter, PowerAnalysisMode

# To maintain the 3.0 behavior in 3.1
from scideampy.legacy import Converter, PowerAnalysisMode

The 3.0 API that remains in legacy:

  • Converter.transient_analysis(time) (without the mode argument)
  • Converter.waveform_analysis(time, for_detail_switch=False, ...)
  • Converter.update_parameter()
  • Converter.power_analysis(mode=PowerAnalysisMode.DETAIL, base_sw=..., ...) (the old signature)
  • Converter.set_analysis_condition(divta=..., divtw=..., fctta=..., divtprf=..., divtmdl=..., ...) (the old argument names)
  • AnalysisCondition.divta / divtw / fctta / divtprf / divtmdl (the old property names)
  • PowerAnalysisMode (an alias of SwitchingMode)

Changes that cannot be restored even with legacy (they behave as in 3.1):

  • AnalysisCondition.fet_crss and igbt_cres have been removed. They are now always treated as enabled on the engine side, and the settings can no longer be changed. They cannot be referenced in the legacy version either.
  • set_analysis_condition(fet_crss=..., igbt_cres=...) has likewise been removed.

About using it together with the new API:

For a gradual migration, you can also use the main API and legacy together in the same script. The criteria are as follows.

  • ✅ Common symbols can be mixed: OutputType, NodeLockKey, LicenseType, Loss, LossNode, Error, FraOptions, Param, Params, ParamsEncoder, timeout_quit, and so on are the same objects whether you import them from scideampy or from scideampy.legacy. There is no problem with importing them from both.
  • ❌ Mixing both APIs on the same Converter instance is not possible: calling a new API method (such as carry_over_state()) on an instance of scideampy.legacy.Converter results in an AttributeError, and passing a new argument (such as analysis_mode=...) results in a TypeError. The reverse is also true.