Summary
This application note describes how to use EnFuzionPWR with PSLF. EnFuzionPWR speeds up PSLF simulation runs by using multiple computers.

 

What is PSLF program?
Positive Load Flow Program (PSLF) is power systems analysis software from GE Power Systems that provides comprehensive, accurate and flexible power system modeling. PSLF provides detailed and comprehensive system modeling of up to 60,000 buses.

 

How does EnFuzionPWR speed up PSLF simulations?
EnFuzionPWR helps with PSLF simulations in many ways. It schedules execution of multiple PSLF simulations on a number of computers. By distributing execution over multiple computers, the results are obtained faster or more simulations can be performed in the same time period. It provides optimum resource utilization and reliable execution by working around computer failures. This maximizes engineer’s productivity by handling all aspects of job scheduling.

 

How is EnFuzionPWR used with PSLF?
This note shows in detail how a single PSLF simulation run, which consists of a large number of scenarios, is executed faster using a number of computers.

 

In this example, varying power lines are switched off and the outage effects on the power grid are analyzed.  A complete set of input files for the example is available here.  Axceleon thanks the PSLF team at GE Power Systems for providing the input example.  The example is executed as follows:

 

  • download input files for the example, which are available here, and extract them to a directory,
  • install EnFuzionPWR on the local computer,
  • install PSLF and EnFuzionPWR on all computers that will be used to execute PSLF jobs,
  • specify remote computers in file on the local machine c:\enfuzion\config\enfuzion.nodes,
  • confirm that the PSLFDIR variable on remote systems points to the PSLF directory,
  • execute jobs by clicking on “outages.run”. This starts job execution on all remote computers. A text window shows an execution log and progress.

 

How does the example work?
The PSLF simulation consists of the following input files:

 

  • batch.p, simulation stages
  • autocp.p, simulation description
  • autocon.cnt, control file
  • getest.sav, grid description
  • contlist.dat, outage cases

 

The batch.p file allows the PSLF simulation to be executed from a command line on a remote machine with:

    pslf20 batch.p

 

Results are stored in the output file conpro.out. The process of executing the PSLF outage analysis on multiple systems is performed as follows. The outage file contlist.dat is split into several files, each file is executed by PSLF on a remote computer, and the results are collected to output file conpro.out.Detailed steps are as follows:

 

  • input preprocessing (optional):
    • contlist.dat is split into several files, called file1.txt, file2.txt … Each file contains multiple outages and represents one unit of work, called a job. This step is performed once on the root computer before any of the PSLF simulations are executed. It can be done as part of the EnFuzion execution or as a separate activity before the run.

 

  • initialization of remote computers:
    • input files that are common to all jobs, are copied from the root computer to each node computer that participates in the execution of jobs. These files are batch.p, autocp.p, autocon.cnt, getest.sav, ini.p and winini.p. This step is performed once on each remote node computer before it starts executing PSLF simulations.

 

  • execution of jobs:
    • file<i>.txt is copied from the root computer to the node computer that is executing the i-th job. <i> denotes the job number.
    • PSLF is executed with job specific parameters.
    • results from the PSLF simulation in file conpro.out are copied from the node computer to the file conpro<i>.out on the root computer. This step is performed once for each job on the remote node computer that is executing this job.

 

  • output postprocessing (optional):
    • output files conpro<i>.out from all the jobs are combined to a single output file conpro.out. This step is performed once on the root computer after all the PSLF simulations are completed. It can be done as part of the EnFuzion execution or as a separate activity after the run.

 

The steps above are described in a plan file “outages.pln”, which provides EnFuzionPWR with commands to execute for each of the steps. The entire EnFuzion plan file to calculate outages is as follows:

 

    # input preprocessing, split contlist.dat into multiple input files
    task rootstart
        execute ..\enfsplit -hl 3 -gs 100 -ul 2 -ie "-1" < ..\contlist.dat
    endtask

    # node initialization, copy common files to a remote computer
    task nodestart
        copy winini.p node:.
        copy ini.p node:.
        copy getest.sav node:.
        copy autocp.p node:.
        copy batch.p node:.
        copy autocon.cnt node:.
    endtask
    
    # job execution, copy a job specific file, execute PSLF, copy back the result
    task main
        copy file$count.txt node:contlist.dat
        node:execute batch-program.bat
        copy node:conpro.out conpro$count.out
    endtask
    
    # output postprocessing, merge output files to a single file
    task rootfinish
        execute ..\enfmerge -ie "END" -p "conpro" -s ".out" > ..\conpro.out
    endtask

    # specify 36 jobs
    parameter count integer range from 1 to 36 step 1;

 

“task rootstart” splits the input file contlist.dat into multiple files. The split is done by the enfsplit program. enfsplit uses the following parameters:

 

  • – hl 3: first three lines in the file are the header, which is replicated in all files
  • – gs 100: each output file contains 100 outage cases
  • – ul 2: one outage case is described with two lines
  • – ie “-1”: line “-1” specifies the end of input

 

enfsplit produces files file1.txt, file2.txt, …, file36.txt. The program is available here. Its source code can be modified for specific applications. Alternatively, a custom script or program can be developed to merge the output files. Since each simulation runs in a separate subdirectory, the contlist.dat input file is taken from the parent directory.

 

“task nodestart” copies common input files to each remote computer. PSLF initialization files winini.p and ini.p are copied in addition to the problem specific files. This ensures that PSLF initialization parameters have correct values. Make sure that geterm[0].use_flag in winini.p is set to 0, which prevents windows being displayed on remote computers.

 

“task main” copies a job specific file to the remote computer, executes the simulation and returns the result. $count is replaced with a job number, which is different for each job. Since there are 36 jobs, the number is between 1 and 36.

 

“task rootfinish” merges output files conpro1.out, conpro2.out, …, conpro36.out to a single output file conpro.out. conpro.out is stored in the parent directory, which is the starting directory where the “outages.run” was executed from. The merge is done by the enfmerge program. enfmerge uses the following parameters:

 

  • – ie “END”: “END” specifes the end of input.
  • – p “conpro”: input file prefix
  • – s “.out”: input file suffix

 

The program is available here. Its source code can be modified for specific applications. Alternatively, a custom script or program can be developed to merge the output files.

 
“parameter” specifies that there are 36 jobs to be executed. Variable “count” is a job number, which varies between 1 and 36.

 

The plan file “outages.pln” is executed as follows:

 

  • create jobs by clicking on “outages.pln” to bring up a windows. Select “File” and “Save Run”. This creates “outages.run”, which generates 36 jobs.
  • execute jobs by clicking on “outages.run”. This starts job execution on all remote computers. A text window shows an execution log and progress.

 

Further Information
This application note describes how EnFuzion is being used with PSLF from GE Power Systems. You can find out more about the use of EnFuzionPWR from the EnFuzion User Manual.

 

Axceleon thanks GE Power Systems for feedback and assistance with the note. You can find out more about PSLF at http://www.gepower.com/dhtml/corporate/en_us/assets/software_solns/prod/pslf.jsp/