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:
![](https://private-user-images.githubusercontent.com/102193041/270497554-41ff1810-f951-4a28-9a48-3cfb455a627b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDk5OTU2OTYsIm5iZiI6MTcwOTk5NTM5NiwicGF0aCI6Ii8xMDIxOTMwNDEvMjcwNDk3NTU0LTQxZmYxODEwLWY5NTEtNGEyOC05YTQ4LTNjZmI0NTVhNjI3Yi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMzA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDMwOVQxNDQzMTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wMmY2Y2YwYjkwY2JmN2QzMzI0YzIyYzhiMDlmZmUzZWEyMWYyZWFiNGY1YzdmMGQzMWQ3MTQ0ODRiN2EzOTBmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.su7xcZuZQqYnTbis6TM9diN3giMTCK3-5moTJJlHkVs)
- 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., early access, Dec. 2023.
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,” Preprint. Golden, CO: National Renewable Energy Laboratory,” NREL/CP-5D00-87164. Sep. 2023.
- To conduct EMT simulations using PataEMT, follow these steps:
![](https://private-user-images.githubusercontent.com/102193041/270496743-72beb4a9-4aac-475b-a0ab-980435a339b0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDk5OTU2OTYsIm5iZiI6MTcwOTk5NTM5NiwicGF0aCI6Ii8xMDIxOTMwNDEvMjcwNDk2NzQzLTcyYmViNGE5LTRhYWMtNDc1Yi1hMGFiLTk4MDQzNWEzMzliMC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMzA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDMwOVQxNDQzMTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hNWYzM2NkZjQ5MTkwMTEzMTZjMmU3YmYyOGZkNDM2NWRmNWI0OWU3NDI1YTU3YjkxOWMyMDY1NWQwNGE5YWFjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.kBrm3MSm5attL0xHj4SwhqFhxKDnNJdCRxormwZAzco)
-
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
![](https://private-user-images.githubusercontent.com/102193041/270498919-a27215f5-9778-4ef9-b603-735a245e16ee.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDk5OTU2OTYsIm5iZiI6MTcwOTk5NTM5NiwicGF0aCI6Ii8xMDIxOTMwNDEvMjcwNDk4OTE5LWEyNzIxNWY1LTk3NzgtNGVmOS1iNjAzLTczNWEyNDVlMTZlZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMzA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDMwOVQxNDQzMTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hNzY5MDA1ZWYzMTJjMDcyMTNlMzlhMGJiNWVkNjIzYjA0MTY0ZDhlNzBjN2IwMGY0OGE4ZjQ2MTE2YTQ0ZTY3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.kPTfDDIVWviK--y8XPFJBAN_kUEAH4rPYy_DgjpQZ6w)
- Time Domain Simulation
![](https://private-user-images.githubusercontent.com/102193041/270498931-b8094dd4-7015-4060-a999-521adb4bafc6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDk5OTU2OTYsIm5iZiI6MTcwOTk5NTM5NiwicGF0aCI6Ii8xMDIxOTMwNDEvMjcwNDk4OTMxLWI4MDk0ZGQ0LTcwMTUtNDA2MC1hOTk5LTUyMWFkYjRiYWZjNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMzA5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDMwOVQxNDQzMTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jZjc0YTZjZmQ3NTE1NWQ5ZjEwZWE5ZjllNWIyNWM4YmNkYjE4ZGFiNzExZDA4NjYyMDk0ZjIzZDU2NWJkNjI3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.ECfsjaw00Awn0QHvLK3AKa4v1K9KQTz0CwLnPSBwCXE)
- 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