1313import com .powsybl .iidm .network .Network ;
1414import com .powsybl .loadflow .LoadFlowParameters ;
1515import com .powsybl .math .matrix .DenseMatrix ;
16- import com .powsybl .math .matrix .MatrixException ;
1716import com .powsybl .math .matrix .MatrixFactory ;
1817import com .powsybl .openloadflow .OpenLoadFlowParameters ;
1918import 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