Skip to content

Commit e109888

Browse files
authored
Refactor Load organization and LoadZIP format (#465)
1 parent 27455f7 commit e109888

54 files changed

Lines changed: 3848 additions & 3592 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

GridKit/Model/PhasorDynamics/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ add_subdirectory(BusToSignalAdapter)
3636
add_subdirectory(Exciter)
3737
add_subdirectory(Governor)
3838
add_subdirectory(Load)
39-
add_subdirectory(LoadZIP)
4039
add_subdirectory(Stabilizer)
4140
add_subdirectory(SynchronousMachine)
4241

GridKit/Model/PhasorDynamics/ComponentLibrary.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
#include <GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1.hpp>
99
#include <GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPti.hpp>
1010
#include <GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1.hpp>
11-
#include <GridKit/Model/PhasorDynamics/Load/Load.hpp>
12-
#include <GridKit/Model/PhasorDynamics/LoadZIP/LoadZIP.hpp>
11+
#include <GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZ.hpp>
12+
#include <GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIP.hpp>
1313
#include <GridKit/Model/PhasorDynamics/SignalNode/SignalNode.hpp>
1414
#include <GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/Ieeest.hpp>
1515
#include <GridKit/Model/PhasorDynamics/SynchronousMachine/GENROUwS/Genrou.hpp>
Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,2 @@
1-
# [[
2-
# Author(s):
3-
# - Cameron Rutherford <cameron.rutherford@pnnl.gov>
4-
# ]]
5-
6-
set(_install_headers Load.hpp LoadData.hpp)
7-
8-
if(GRIDKIT_ENABLE_ENZYME)
9-
gridkit_add_library(
10-
phasor_dynamics_load
11-
SOURCES LoadEnzyme.cpp
12-
HEADERS ${_install_headers}
13-
INCLUDE_DIRECTORIES PRIVATE ${GRIDKIT_THIRD_PARTY_DIR}/magic-enum/include
14-
LINK_LIBRARIES
15-
PRIVATE
16-
ClangEnzymeFlags
17-
PUBLIC
18-
GridKit::phasor_dynamics_core
19-
COMPILE_OPTIONS
20-
PRIVATE
21-
-mllvm
22-
-enzyme-auto-sparsity=1
23-
-fno-math-errno)
24-
else()
25-
gridkit_add_library(
26-
phasor_dynamics_load
27-
SOURCES Load.cpp
28-
INCLUDE_DIRECTORIES PRIVATE ${GRIDKIT_THIRD_PARTY_DIR}/magic-enum/include
29-
LINK_LIBRARIES PUBLIC GridKit::phasor_dynamics_core
30-
HEADERS ${_install_headers})
31-
endif()
32-
33-
gridkit_add_library(
34-
phasor_dynamics_load_dependency_tracking
35-
SOURCES LoadDependencyTracking.cpp
36-
INCLUDE_DIRECTORIES PRIVATE ${GRIDKIT_THIRD_PARTY_DIR}/magic-enum/include
37-
LINK_LIBRARIES PUBLIC GridKit::phasor_dynamics_core)
38-
39-
# Link to interface target for all components
40-
target_link_libraries(
41-
phasor_dynamics_components
42-
INTERFACE GridKit::phasor_dynamics_load)
43-
target_link_libraries(
44-
phasor_dynamics_components_dependency_tracking
45-
INTERFACE GridKit::phasor_dynamics_load_dependency_tracking)
1+
add_subdirectory(LoadZ)
2+
add_subdirectory(LoadZIP)
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# [[
2+
# Author(s):
3+
# - Cameron Rutherford <cameron.rutherford@pnnl.gov>
4+
# ]]
5+
6+
set(_install_headers LoadZ.hpp LoadZData.hpp)
7+
8+
if(GRIDKIT_ENABLE_ENZYME)
9+
gridkit_add_library(
10+
phasor_dynamics_loadz
11+
SOURCES LoadZEnzyme.cpp
12+
HEADERS ${_install_headers}
13+
INCLUDE_DIRECTORIES PRIVATE ${GRIDKIT_THIRD_PARTY_DIR}/magic-enum/include
14+
LINK_LIBRARIES
15+
PRIVATE
16+
ClangEnzymeFlags
17+
PUBLIC
18+
GridKit::phasor_dynamics_core
19+
COMPILE_OPTIONS
20+
PRIVATE
21+
-mllvm
22+
-enzyme-auto-sparsity=1
23+
-fno-math-errno)
24+
else()
25+
gridkit_add_library(
26+
phasor_dynamics_loadz
27+
SOURCES LoadZ.cpp
28+
INCLUDE_DIRECTORIES PRIVATE ${GRIDKIT_THIRD_PARTY_DIR}/magic-enum/include
29+
LINK_LIBRARIES PUBLIC GridKit::phasor_dynamics_core
30+
HEADERS ${_install_headers})
31+
endif()
32+
33+
gridkit_add_library(
34+
phasor_dynamics_loadz_dependency_tracking
35+
SOURCES LoadZDependencyTracking.cpp
36+
INCLUDE_DIRECTORIES PRIVATE ${GRIDKIT_THIRD_PARTY_DIR}/magic-enum/include
37+
LINK_LIBRARIES PUBLIC GridKit::phasor_dynamics_core)
38+
39+
# Link to interface target for all components
40+
target_link_libraries(
41+
phasor_dynamics_components
42+
INTERFACE GridKit::phasor_dynamics_loadz)
43+
target_link_libraries(
44+
phasor_dynamics_components_dependency_tracking
45+
INTERFACE GridKit::phasor_dynamics_loadz_dependency_tracking)
Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
1-
2-
#include "LoadImpl.hpp"
3-
4-
namespace GridKit
5-
{
6-
namespace PhasorDynamics
7-
{
8-
/**
9-
* @brief Jacobian evaluation not implemented
10-
*
11-
* @return int - error code, 0 = success
12-
*/
13-
template <typename scalar_type, typename index_type>
14-
int Load<scalar_type, index_type>::evaluateJacobian()
15-
{
16-
Log::misc() << "Evaluate Jacobian for Load..." << std::endl;
17-
Log::misc() << "Jacobian evaluation is not implemented!" << std::endl;
18-
19-
return 0;
20-
}
21-
22-
// Available template instantiations
23-
template class Load<double, long int>;
24-
template class Load<double, size_t>;
25-
26-
} // namespace PhasorDynamics
27-
} // namespace GridKit
1+
2+
#include "LoadZImpl.hpp"
3+
4+
namespace GridKit
5+
{
6+
namespace PhasorDynamics
7+
{
8+
/**
9+
* @brief Jacobian evaluation not implemented
10+
*
11+
* @return int - error code, 0 = success
12+
*/
13+
template <typename scalar_type, typename index_type>
14+
int LoadZ<scalar_type, index_type>::evaluateJacobian()
15+
{
16+
Log::misc() << "Evaluate Jacobian for LoadZ..." << std::endl;
17+
Log::misc() << "Jacobian evaluation is not implemented!" << std::endl;
18+
19+
return 0;
20+
}
21+
22+
// Available template instantiations
23+
template class LoadZ<double, long int>;
24+
template class LoadZ<double, size_t>;
25+
26+
} // namespace PhasorDynamics
27+
} // namespace GridKit

GridKit/Model/PhasorDynamics/Load/Load.hpp renamed to GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZ.hpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
#include <GridKit/Model/PhasorDynamics/Component.hpp>
44
#include <GridKit/Model/PhasorDynamics/ComponentSignals.hpp>
5-
#include <GridKit/Model/PhasorDynamics/Load/LoadData.hpp>
5+
#include <GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZData.hpp>
66
#include <GridKit/Model/VariableMonitor.hpp>
77

88
// Forward declarations.
@@ -14,7 +14,7 @@ namespace GridKit
1414
class BusBase;
1515

1616
template <typename real_type, typename index_type>
17-
struct LoadData;
17+
struct LoadZData;
1818
} // namespace PhasorDynamics
1919
} // namespace GridKit
2020

@@ -27,7 +27,7 @@ namespace GridKit
2727
*
2828
*/
2929
template <typename scalar_type, typename index_type>
30-
class Load : public Component<scalar_type, index_type>
30+
class LoadZ : public Component<scalar_type, index_type>
3131
{
3232
using Component<scalar_type, index_type>::gridkit_component_id_;
3333
using Component<scalar_type, index_type>::size_;
@@ -53,13 +53,13 @@ namespace GridKit
5353
using IdxT = index_type;
5454
using RealT = typename Component<ScalarT, IdxT>::RealT;
5555
using BusT = BusBase<ScalarT, IdxT>;
56-
using ModelDataT = LoadData<RealT, IdxT>;
57-
using MonitorT = Model::VariableMonitor<Load, LoadData>;
56+
using ModelDataT = LoadZData<RealT, IdxT>;
57+
using MonitorT = Model::VariableMonitor<LoadZ, LoadZData>;
5858

59-
Load(BusT* bus);
60-
Load(BusT* bus, RealT R, RealT X);
61-
Load(BusT* bus, const ModelDataT& data);
62-
virtual ~Load();
59+
LoadZ(BusT* bus);
60+
LoadZ(BusT* bus, RealT R, RealT X);
61+
LoadZ(BusT* bus, const ModelDataT& data);
62+
virtual ~LoadZ();
6363

6464
virtual int setGridKitComponentID(IdxT) override final;
6565
virtual int allocate() override final;
@@ -78,15 +78,17 @@ namespace GridKit
7878
void setR(RealT R)
7979
{
8080
R_ = R;
81+
setDerivedParams();
8182
}
8283

8384
void setX(RealT X)
8485
{
85-
// std::cout << "Setting X ...\n";
8686
X_ = X;
87+
setDerivedParams();
8788
}
8889

8990
private:
91+
void initializeMonitor();
9092
void setDerivedParams();
9193

9294
ScalarT& Vr()
Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* @file LoadData.hpp
2+
* @file LoadZData.hpp
33
* @author Slaven Peles (peless@ornl.gov)
44
* @brief Modeling data for loads
55
*
@@ -13,20 +13,20 @@ namespace GridKit
1313
namespace PhasorDynamics
1414
{
1515
/// Initial parameters for a load
16-
enum class LoadParameters
16+
enum class LoadZParameters
1717
{
1818
R, ///< Load resistance
1919
X, ///< Load reactance
2020
};
2121

2222
/// Ports for a load
23-
enum class LoadPorts
23+
enum class LoadZPorts
2424
{
2525
bus, ///< Unique ID of the bus to which the load is connected
2626
};
2727

2828
/// Variables able to be monitored for a load
29-
enum class LoadMonitorableVariables
29+
enum class LoadZMonitorableVariables
3030
{
3131
p,
3232
q
@@ -41,17 +41,17 @@ namespace GridKit
4141
* Integer parameters are of the same type as matrix and vector indices.
4242
*/
4343
template <typename real_type, typename index_type>
44-
struct LoadData : public ComponentData<real_type,
45-
index_type,
46-
LoadParameters,
47-
LoadPorts,
48-
LoadMonitorableVariables>
44+
struct LoadZData : public ComponentData<real_type,
45+
index_type,
46+
LoadZParameters,
47+
LoadZPorts,
48+
LoadZMonitorableVariables>
4949
{
50-
LoadData() = default;
50+
LoadZData() = default;
5151

52-
using Parameters = LoadParameters;
53-
using Ports = LoadPorts;
54-
using MonitorableVariables = LoadMonitorableVariables;
52+
using Parameters = LoadZParameters;
53+
using Ports = LoadZPorts;
54+
using MonitorableVariables = LoadZMonitorableVariables;
5555
};
5656
} // namespace PhasorDynamics
5757
} // namespace GridKit

GridKit/Model/PhasorDynamics/Load/LoadDependencyTracking.cpp renamed to GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZDependencyTracking.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
#include "LoadImpl.hpp"
2+
#include "LoadZImpl.hpp"
33

44
namespace GridKit
55
{
@@ -11,17 +11,17 @@ namespace GridKit
1111
* @return int - error code, 0 = success
1212
*/
1313
template <typename scalar_type, typename index_type>
14-
int Load<scalar_type, index_type>::evaluateJacobian()
14+
int LoadZ<scalar_type, index_type>::evaluateJacobian()
1515
{
16-
Log::misc() << "Evaluate Jacobian for Load..." << std::endl;
16+
Log::misc() << "Evaluate Jacobian for LoadZ..." << std::endl;
1717
Log::misc() << "Jacobian evaluation is not implemented!" << std::endl;
1818

1919
return 0;
2020
}
2121

2222
// Available template instantiations
23-
template class Load<DependencyTracking::Variable, long int>;
24-
template class Load<DependencyTracking::Variable, size_t>;
23+
template class LoadZ<DependencyTracking::Variable, long int>;
24+
template class LoadZ<DependencyTracking::Variable, size_t>;
2525

2626
} // namespace PhasorDynamics
2727
} // namespace GridKit

GridKit/Model/PhasorDynamics/Load/LoadEnzyme.cpp renamed to GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZEnzyme.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/**
2-
* @file LoadEnzyme.cpp
2+
* @file LoadZEnzyme.cpp
33
* @author Nicholson Koukpaizan (koukpaizannk@ornl.gov)
44
*
55
*/
66

77
#include <GridKit/AutomaticDifferentiation/Enzyme/SparseJacobians.hpp>
88

9-
#include "LoadImpl.hpp"
9+
#include "LoadZImpl.hpp"
1010

1111
namespace GridKit
1212
{
@@ -18,9 +18,9 @@ namespace GridKit
1818
* @return int - error code, 0 = success
1919
*/
2020
template <typename scalar_type, typename index_type>
21-
int Load<scalar_type, index_type>::evaluateJacobian()
21+
int LoadZ<scalar_type, index_type>::evaluateJacobian()
2222
{
23-
Log::misc() << "Evaluate Jacobian for Load..." << std::endl;
23+
Log::misc() << "Evaluate Jacobian for LoadZ..." << std::endl;
2424
Log::misc() << "Jacobian evaluation is experimental!" << std::endl;
2525

2626
J_.zeroMatrix();
@@ -33,7 +33,7 @@ namespace GridKit
3333

3434
// DfDy call without alpha_ to indicate that df/dy' is null
3535
// @todo: deduce from a compile-time differential tag
36-
GridKit::Enzyme::Sparse::DfDy<GridKit::PhasorDynamics::Load<ScalarT, IdxT>,
36+
GridKit::Enzyme::Sparse::DfDy<GridKit::PhasorDynamics::LoadZ<ScalarT, IdxT>,
3737
GridKit::Enzyme::Sparse::MemberFunctions::InternalResidual,
3838
ScalarT,
3939
IdxT>::eval(this,
@@ -49,7 +49,7 @@ namespace GridKit
4949
J_vals_buffer_,
5050
J_);
5151

52-
GridKit::Enzyme::Sparse::DfDwb<GridKit::PhasorDynamics::Load<ScalarT, IdxT>,
52+
GridKit::Enzyme::Sparse::DfDwb<GridKit::PhasorDynamics::LoadZ<ScalarT, IdxT>,
5353
GridKit::Enzyme::Sparse::MemberFunctions::InternalResidual,
5454
ScalarT,
5555
IdxT>::eval(this,
@@ -65,7 +65,7 @@ namespace GridKit
6565
J_vals_buffer_,
6666
J_);
6767

68-
GridKit::Enzyme::Sparse::DhDy<GridKit::PhasorDynamics::Load<ScalarT, IdxT>,
68+
GridKit::Enzyme::Sparse::DhDy<GridKit::PhasorDynamics::LoadZ<ScalarT, IdxT>,
6969
GridKit::Enzyme::Sparse::MemberFunctions::BusResidual,
7070
ScalarT,
7171
IdxT>::eval(this,
@@ -85,8 +85,8 @@ namespace GridKit
8585
}
8686

8787
// Available template instantiations
88-
template class Load<double, long int>;
89-
template class Load<double, size_t>;
88+
template class LoadZ<double, long int>;
89+
template class LoadZ<double, size_t>;
9090

9191
} // namespace PhasorDynamics
9292
} // namespace GridKit

0 commit comments

Comments
 (0)