Skip to content

Commit

Permalink
Use disconnectOnly instead of disconnectOrigin/Extremity in event dis…
Browse files Browse the repository at this point in the history
…connection
  • Loading branch information
Lisrte committed Jan 22, 2024
1 parent 409182d commit c6228d3
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 20 deletions.
2 changes: 1 addition & 1 deletion cpp/src/bindings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ void dynamicSimulationBindings(py::module_& m) {
m.def("add_curve", &pypowsybl::addCurve, py::arg("curve_mapping_handle"), py::arg("dynamic_id"), py::arg("variable"));

// events mapping
m.def("add_event_branch_disconnection", &pypowsybl::addEventBranchDisconnection, py::arg("event_mapping_handle"), py::arg("static_id"), py::arg("eventTime"), py::arg("disconnectOrigin"), py::arg("disconnectExtremity"));
m.def("add_event_branch_disconnection", &pypowsybl::addEventBranchDisconnection, py::arg("event_mapping_handle"), py::arg("static_id"), py::arg("eventTime"), py::arg("disconnectOnly"));
m.def("add_event_injection_disconnection", &pypowsybl::addEventInjectionDisconnection, py::arg("event_mapping_handle"), py::arg("static_id"), py::arg("eventTime"), py::arg("stateEvent"));

// Simulation results
Expand Down
4 changes: 2 additions & 2 deletions cpp/src/pypowsybl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1408,8 +1408,8 @@ void addCurve(JavaHandle curveMappingHandle, std::string dynamicId, std::string
callJava<>(::addCurve, curveMappingHandle, (char*) dynamicId.c_str(), (char*) variable.c_str());
}

void addEventBranchDisconnection(const JavaHandle& eventMappingHandle, const std::string& staticId, double eventTime, bool disconnectOrigin, bool disconnectExtremity) {
callJava<>(::addEventBranchDisconnection, eventMappingHandle, (char*) staticId.c_str(), eventTime, disconnectOrigin, disconnectExtremity);
void addEventBranchDisconnection(const JavaHandle& eventMappingHandle, const std::string& staticId, double eventTime, int disconnectOnly) {
callJava<>(::addEventBranchDisconnection, eventMappingHandle, (char*) staticId.c_str(), eventTime, disconnectOnly);
}

void addEventInjectionDisconnection(const JavaHandle& eventMappingHandle, const std::string& staticId, double eventTime, bool stateEvent) {
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/pypowsybl.h
Original file line number Diff line number Diff line change
Expand Up @@ -597,7 +597,7 @@ JavaHandle runDynamicModel(JavaHandle dynamicModelContext, JavaHandle network, J
void addCurve(JavaHandle curveMappingHandle, std::string dynamicId, std::string variable);

// events mapping
void addEventBranchDisconnection(const JavaHandle& eventMappingHandle, const std::string& staticId, double eventTime, bool disconnectOrigin, bool disconnectExtremity);
void addEventBranchDisconnection(const JavaHandle& eventMappingHandle, const std::string& staticId, double eventTime, int disconnectOnly);
void addEventInjectionDisconnection(const JavaHandle& eventMappingHandle, const std::string& staticId, double eventTime, bool stateEvent);

// dynamic model mapping
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,13 +147,12 @@ public static void addEventBranchDisconnection(IsolateThread thread,
ObjectHandle eventSupplierHandle,
CCharPointer staticIdPtr,
double eventTime,
boolean disconnectOrigin,
boolean disconnectExtremity,
int disconnectOnly,
PyPowsyblApiHeader.ExceptionHandlerPointer exceptionHandlerPtr) {
doCatch(exceptionHandlerPtr, () -> {
String staticId = CTypeUtil.toString(staticIdPtr);
EventSupplier eventSupplier = ObjectHandles.getGlobal().get(eventSupplierHandle);
eventSupplier.addEventBranchDisconnection(staticId, eventTime, disconnectOrigin, disconnectExtremity);
eventSupplier.addEventBranchDisconnection(staticId, eventTime, Util.convert(PyPowsyblApiHeader.BranchSide.fromCValue(disconnectOnly)));
});
}

Expand Down
20 changes: 13 additions & 7 deletions java/src/main/java/com/powsybl/python/dynamic/EventSupplier.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.powsybl.dynamicsimulation.EventModelsSupplier;
import com.powsybl.dynawaltz.models.events.EventDisconnectionBuilder;
import com.powsybl.iidm.network.Network;
import com.powsybl.iidm.network.TwoSides;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -21,6 +22,7 @@

/**
* @author Nicolas Pierre <nicolas.pierre@artelys.com>
* @author Laurent Issertial {@literal <laurent.issertial at rte-france.com>}
*/
public class EventSupplier implements EventModelsSupplier {

Expand All @@ -32,13 +34,17 @@ public class EventSupplier implements EventModelsSupplier {
* <p>
* The event represent the disconnection the given line/transformer
*/
public void addEventBranchDisconnection(String staticId, double eventTime, boolean disconnectOrigin, boolean disconnectExtremity) {
//TODO handle disconnect side
//TODO replace one event with one disconnection event
eventSupplierList.add(network -> EventDisconnectionBuilder.of(network)
.staticId(staticId)
.startTime(eventTime)
.build());
public void addEventBranchDisconnection(String staticId, double eventTime, TwoSides disconnectOnly) {
//TODO replace with one disconnection event
eventSupplierList.add(network -> {
EventDisconnectionBuilder builder = EventDisconnectionBuilder.of(network)
.staticId(staticId)
.startTime(eventTime);
if (disconnectOnly != null) {
builder.disconnectOnly(disconnectOnly);
}
return builder.build();
});
}

/**
Expand Down
2 changes: 1 addition & 1 deletion pypowsybl/_pypowsybl.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -786,7 +786,7 @@ def run_dynamic_model(dynamic_model: JavaHandle, network: JavaHandle, dynamic_ma
def add_all_dynamic_mappings(dynamic_mapping_handle: JavaHandle, mapping_type: DynamicMappingType, mapping_df: Dataframe) -> None: ...
def get_dynamic_mappings_meta_data(mapping_type: DynamicMappingType) -> List[SeriesMetadata]: ...
def add_curve(curve_mapping_handle: JavaHandle, dynamic_id: str, variable: str) -> None: ...
def add_event_branch_disconnection(event_mapping_handle: JavaHandle, static_id: str, event_time: float, disconnect_origin: bool, disconnect_extremity: bool) -> None: ...
def add_event_branch_disconnection(event_mapping_handle: JavaHandle, static_id: str, event_time: float, disconnect_only: BranchSide) -> None: ...
def add_event_injection_disconnection(event_mapping_handle: JavaHandle, static_id: str, event_time: float, state_event: bool) -> None: ...
def set_powsybl_config_location(absolute_path_to_config:str, config_file_name: str) -> None: ...
def get_dynamic_simulation_results_status(result_handle: JavaHandle) -> str: ...
Expand Down
8 changes: 3 additions & 5 deletions pypowsybl/dynamic/impl/event_mapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,16 @@ class EventMapping:
def __init__(self) -> None:
self._handle = _pp.create_event_mapping()

def add_branch_disconnection(self, static_id: str, event_time: float, disconnect_origin: bool,
disconnect_extremity: bool) -> None:
def add_branch_disconnection(self, static_id: str, event_time: float, disconnect_only: BranchSide) -> None:
""" Creates a branch disconnection event
Args:
static_id (str): network element to disconnect
event_time (float): timestep at which the event happens
disconnect_origin (bool) : the disconnection is made at the origin
disconnect_extremity (bool) : the disconnection is made at the extremity
disconnect_only (BranchSide) : the disconnection is made on the provided side only
"""
_pp.add_event_branch_disconnection(
self._handle, static_id, event_time, disconnect_origin, disconnect_extremity)
self._handle, static_id, event_time, disconnect_only)

def add_injection_disconnection(self, static_id: str, event_time: float, state_event: bool) -> None:
""" Creates an injection disconnection event
Expand Down

0 comments on commit c6228d3

Please sign in to comment.