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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMxNTU2NjksIm5iZiI6MTcyMzE1NTM2OSwicGF0aCI6Ii8xMDIxOTMwNDEvMjcwNDk3NTU0LTQxZmYxODEwLWY5NTEtNGEyOC05YTQ4LTNjZmI0NTVhNjI3Yi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwOFQyMjE2MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OThjODkxYThmMjlkYTk5NGQ1NTA5NGExZGRmYWUyZmQ0YTdmZTIyYzAyY2Q2NTNhODRlZTI3ZDlkNTM2YTU4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.-hAMia0xtAcuNEnhPD3sKhQcKBoK5aIo3mZLEo0R92U)
- Work with Pyhton v3.7+.
- If you use ParaEMT for research or consulting, please cite the following paper in your publication that uses ParaEMT:
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMxNTU2NjksIm5iZiI6MTcyMzE1NTM2OSwicGF0aCI6Ii8xMDIxOTMwNDEvMjcwNDk2NzQzLTcyYmViNGE5LTRhYWMtNDc1Yi1hMGFiLTk4MDQzNWEzMzliMC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwOFQyMjE2MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iODNlMTVmNjJmMDA2ZDBkZDY4MDk5YzA5YTY4MzIxMmFjMTRlYjVmNzJhOGQ4MWVmYTA2ZTU4ZTE1YjZjMTZmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.9vtQbTeqDM5R4B3_nes63nTnkCaYCzxrgnqSoLIBs8E)
-
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMxNTU2NjksIm5iZiI6MTcyMzE1NTM2OSwicGF0aCI6Ii8xMDIxOTMwNDEvMjcwNDk4OTE5LWEyNzIxNWY1LTk3NzgtNGVmOS1iNjAzLTczNWEyNDVlMTZlZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwOFQyMjE2MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01NDdjMjcyNTRkMzczYWRkNGRlNzk3MTMxZTJhNTAwYThmY2UxMTg2Mzk3N2ZlNjg1MmFjMDM3NjNhNmUyZjlhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.-xYPxYoJfX7jPpLsylsEGIJG7cXzdjdugppkU_1zX2U)
- Time Domain Simulation
![](https://private-user-images.githubusercontent.com/102193041/270498931-b8094dd4-7015-4060-a999-521adb4bafc6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMxNTU2NjksIm5iZiI6MTcyMzE1NTM2OSwicGF0aCI6Ii8xMDIxOTMwNDEvMjcwNDk4OTMxLWI4MDk0ZGQ0LTcwMTUtNDA2MC1hOTk5LTUyMWFkYjRiYWZjNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwOFQyMjE2MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jZTBjMGY4YzI0OTc3ZmI2OWJiYzk5MDk1NjRjMTFmNjVlNDZkZWQ0MTE3YzBhY2U4NTJlYjIyYzk3MjQ2YTVhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.KVTVHXQmaRrakgPOTS0wrFCrQuzr7Icm3HQO3H_SlmE)
- 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