Skip to content

Commit dc70d03

Browse files
p-arvyvidaldid-rte
authored andcommitted
Clean usage of matrixCopyValues in DC Sensitivity Analysis (#1198)
Signed-off-by: p-arvy <pierre.arvy@artelys.com> Signed-off-by: Didier Vidal <didier.vidal_externe@rte-france.com>
1 parent 003d787 commit dc70d03

File tree

1 file changed

+4
-22
lines changed

1 file changed

+4
-22
lines changed

src/main/java/com/powsybl/openloadflow/sensi/DcSensitivityAnalysis.java

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import com.powsybl.iidm.network.Network;
1414
import com.powsybl.loadflow.LoadFlowParameters;
1515
import com.powsybl.math.matrix.DenseMatrix;
16-
import com.powsybl.math.matrix.MatrixException;
1716
import com.powsybl.math.matrix.MatrixFactory;
1817
import com.powsybl.openloadflow.OpenLoadFlowParameters;
1918
import com.powsybl.openloadflow.dc.DcLoadFlowContext;
@@ -475,8 +474,8 @@ public void analyse(Network network, List<PropagatedContingency> contingencies,
475474

476475
// process contingencies with no connectivity break
477476
for (PropagatedContingency contingency : connectivityBreakAnalysisResults.nonBreakingConnectivityContingencies()) {
478-
matrixCopyValues(baseFlowStates, workingFlowStates);
479-
matrixCopyValues(baseFactorStates, workingFactorStates);
477+
workingFlowStates.copyValuesFrom(baseFlowStates);
478+
workingFactorStates.copyValuesFrom(baseFactorStates);
480479

481480
calculateSensitivityValuesForAContingency(loadFlowContext, lfParametersExt, validFactorHolder, factorGroups,
482481
workingFactorStates, connectivityBreakAnalysisResults.contingenciesStates(), workingFlowStates, contingency,
@@ -487,8 +486,8 @@ public void analyse(Network network, List<PropagatedContingency> contingencies,
487486

488487
// process contingencies with connectivity break
489488
for (ConnectivityBreakAnalysis.ConnectivityAnalysisResult connectivityAnalysisResult : connectivityBreakAnalysisResults.connectivityAnalysisResults()) {
490-
matrixCopyValues(baseFlowStates, workingFlowStates);
491-
matrixCopyValues(baseFactorStates, workingFactorStates);
489+
workingFlowStates.copyValuesFrom(baseFlowStates);
490+
workingFactorStates.copyValuesFrom(baseFactorStates);
492491

493492
processContingenciesBreakingConnectivity(connectivityAnalysisResult, loadFlowContext, lfParameters, lfParametersExt,
494493
validFactorHolder, factorGroups, participatingElements, connectivityBreakAnalysisResults.contingencyElementByBranch(),
@@ -501,21 +500,4 @@ public void analyse(Network network, List<PropagatedContingency> contingencies,
501500
}
502501
}
503502

504-
/**
505-
* Copy all the values that are in an originalMatrix and paste it in the copyMatrix (without allocating new memory spaces)
506-
* The dimensions of both matrices must be the same
507-
*/
508-
// TODO : implement this method for DenseMatrix in powsybl-core ?
509-
private static void matrixCopyValues(DenseMatrix originalMatrix, DenseMatrix copyMatrix) {
510-
if (originalMatrix.getRowCount() == copyMatrix.getRowCount() && originalMatrix.getColumnCount() == copyMatrix.getColumnCount()) {
511-
for (int columnIndex = 0; columnIndex < originalMatrix.getColumnCount(); columnIndex++) {
512-
for (int rowIndex = 0; rowIndex < originalMatrix.getRowCount(); rowIndex++) {
513-
copyMatrix.set(rowIndex, columnIndex, originalMatrix.get(rowIndex, columnIndex));
514-
}
515-
}
516-
} else {
517-
throw new MatrixException("Incompatible matrices dimensions when copying values. Received (" + originalMatrix.getRowCount() + ", " + originalMatrix.getColumnCount() + ") and (" + copyMatrix.getRowCount() + ", " + copyMatrix.getColumnCount() + ")");
518-
}
519-
}
520-
521503
}

0 commit comments

Comments
 (0)