NREL's EMT simulator: An Open Source, Parallelizable, and HPC-Compatible Large-Scale Power System Electro-Magnetic Transient (EMT) Simulator
Welcome to the ParaEMT simulation package! This open-source tool aims to provide a powerful and flexible platform for simulating electromagnetic transients (EMT) of large-scale inverter-based resource (IBR)-dominated power systems. The purpose of making it open source is to foster a community of EMT simulation and assist in exploring new EMT algorithms and applying advanced computational techniques to EMT simulation.
- EMT modeling
- EMT Network equation: nodal formulation based on Trapezoidal-rule method
- EMT network parallel solver: BBD
- Parallel computation of updateing device states and network historical current
- Compatible with HPC
- Compatible with dynamic-link library (DLL) supported dynamic models
- Compiled with the just-in-time (JIT) compiler, Numba, in Python
- Results down-sampling
- Save simulation progress as a snapshot file, and resume the simulation from a saved snapshot
- Test systems library: the Kundur two-area system, IEEE 9-bus system, IEEE 39-bus system, Western Electricity Coordinating Council (WECC) 179-bus system, and WECC 240-bus system
- Fully open source and transparent: Allows unrestricted access to the underlying source code and encourages active engagement and contributions from the community
- ParaEMT is under continuous development, and currently supports the following models:
- Work with Pyhton v3.7+.
- If you use ParaEMT for research or consulting, please cite the following papers (paper 1 and paper 2) in your publication that uses ParaEMT:
M. Xiong, B. Wang, D. Vaidhynathan, J. Maack, M. Reynolds, A. Hoke, K. Sun, J. Tan, “ParaEMT: an open source, parallelizable, and HPC-compatible EMT simulator for large-scale IBR-rich power grids,” IEEE Trans. Power Del., vol. 39, no. 2, pp. 911-921, Apr. 2024.
M. Xiong, B. Wang, D. Vaidhynathan, J. Maack, M. Reynolds, A. Hoke, K. Sun, D. Ramasubramanian, V. Verma, J. Tan, “An open-source parallel EMT simulation framework,” Electric Power Syst. Res., vol. 235, 2024, Art. no. 110734.
- To conduct EMT simulations using PataEMT, follow these steps:
-
Main Functions and Subfunction Libraries
The first function, main_step0_CreateLargeCases, serves the dual purpose of executing and storing the power flow solution and, optionally, generating synthetic large-scale systems. The second function, main_step1_sim, is responsible for initializing and simulating the system dynamics. The third function, main_step2_save, saves the simulation results.
-
Simulation Initialization
- Time Domain Simulation
- ParaEMT has been developed under a Laboratory Directed Research and Development (LDRD) project titled “Large-Scale Electro-magnetic Transient (EMT) Capability for Evaluating 100% Inverter-Based Systems” at the U.S. Department of Energy's National Renewable Energy Laboratory.
- ParaEMT has also been developed under the NREL project titled "Intelligent Phasor-EMT Partitioning (I-PEP) for Accelerated Large-scale IBR Integration Studies (Award # DE-EE00038457)".
- NREL Software Record of Invention : “Parallelizable Large-Scale Power System Electro-Magnetic Transient (EMT) Simulator”. Authors: Bin Wang, Jonathan Maack, Deepthi Vaidhynathan, Jin Tan, Matthew Reynolds. https://doelps.org/arntrn
- ParaEMT is released under a BSD.
- NREL Software Record of Invention: Bin Wang, Jonathan Maack, Deepthi Vaidhynathan, Jin Tan, Matthew Reynolds “Parallelizable Large-Scale Power System Electro-Magnetic Transient (EMT) Simulator”.
- For any questions, feedback, or inquiries, please contact our team at ParaEMT@nrel.gov.
- Report bugs or issues by submitting a GitHub issue