Unfortunately, I am not really familiar with the details of this code since it was contributed by others. My first thought is that it might be something related to topology. You could run case_info() on the original case just to see if it shows anything unexpected, although the most obvious issues (e.g. islands, isolated buses) would likely also cause problems for the power flow. Another thought is whether there is a possibility that the elimination of certain buses could result in topology problems?
Sorry, I am not able to be more helpful in debugging this. Ray On Jun 2, 2022, at 5:57 PM, Lusha Wang <lushawan...@gmail.com<mailto:lushawan...@gmail.com>> wrote: Hello Ray, I have checked the code inside MPReduction, and noticed that the issue comes from the infinite loop in SelfLink.m. SelfRef = Start; Counter = 0; while Link(SelfRef)~=0 Counter = Counter+1; % count how many linkage in this list LinkPos(Counter)=SelfRef; SelfRef = Link(SelfRef); LinkArray(Counter)=SelfRef; % create the array of the self referential link list end Link(SelfRef) is 37 or 585 and therefore the process is stuck in the infinite loop. Thanks, Lusha On Wed, Jun 1, 2022 at 4:57 PM Lusha Wang <lushawan...@gmail.com<mailto:lushawan...@gmail.com>> wrote: Hi Ray, Thanks for answering the question. Yes I can solve power flow but I couldn't do MPReduction. The information is as follows: >> test Eliminate 0 isolated buses Eliminate 0 branches Eliminate 0 generators Preprocessing complete Convert input data model Creating Y matrix of input full model Do first round reduction eliminating all external buses --------------(after a long time)----------------------------------------- Requested 2147483649x1 (16.0GB) array exceeds maximum array size preference (16.0GB). This might cause MATLAB to become unresponsive. Error in SelfLink (line 51) LinkPos(Counter)=SelfRef; Error in PartialSymLU (line 97) [LinkPos,LinkArray,Counter] = SelfLink(Link,RowIndex); Error in DoReduction (line 42) [ERPU,CIndxU,ERPEQ,CIndxEQ] = PartialSymLU(CIndx,ERP,dim,length(ExBus),BoundBus); Error in MPReduction (line 67) [mpcreduced,BCIRCr,ExBusr] = DoReduction(DataB,ERP,CIndx,ExBus,NUMB,dim,BCIRC,newbusnum,oldbusnum,mpc); % ExBusr with original numbering Error in test (line 11) [mpcreduced,Link,BCIRCr]=MPReduction(mpc,ExBus,0); % call reduction subroutine Related documentation Thanks, Lusha On Tue, May 24, 2022 at 12:35 PM Ray Daniel Zimmerman <r...@cornell.edu<mailto:r...@cornell.edu>> wrote: Have you validated the original 2000 bus system? Can you solve a power flow or OPF on it? If so, could you post the exact error message you are seeing with MPReduction? Ray On May 22, 2022, at 11:22 PM, Lusha Wang <lushawan...@gmail.com<mailto:lushawan...@gmail.com>> wrote: Hi Sir or Madam, I am trying to reduce a network from 2000 nodes to somewhere below 100 nodes. I tried to use the MPReduction function, however, it gives runtime error saying that the system is too big and it has some problems with calculation. Do you have any suggestions on this issue? Like, how to reduce a large-size network in matpower? Thanks, Lusha Wang