# pcb-rnd User Manual: Appendix

## SimRun() output file format

The file format is a simple line based plain text format with no limit on line lengths. The file is indented with spaces to indicate the tree structure. Indentation is stable in the export code, so parsers may depend on it. However, it's probably more practical to depend on the fact that the first 1 or 2 words in each line is a string literal that determines the meaning of the line. Long blocks of embedded data are packed in between begin/end markers. Begin marks often have human readable explanation at the end of the line, those shall be ignored by parsers. Other than these, there are no comments in the file. Empty lines shall be ignored. String literals are written in bold in this document.

The first line of the file is Simulation setup: followed by the user assigned name of the simulation setup being exported. There is exactly one simulation setup exported per file.

Then comes one or more output trees. The output starts with an Output: line conaining the user assigned name of the output. Each output tree has three subtrees: analysis, presentation and data.

The analysis subtree is introduced by the analysis line. A config subtree follows, to describe the analysis configuration.

The presentation subtree is introduced by the presentation line. A config subtree follows, to describe the presentation configuration, then a props subtree lists the columns of data.

The props subtree is ontriduced by a props begin line, followed by 1 or more props, terminated by a props end line. The first prop is always x: followed by the human readable label of the X axis. The rest of the props are names of the data columns (y coords).

A config subtree is specified in between a pair of config begin and a config end lines and contains zero or more key=value lines.

The data subtree starts with data begin and ends with data end. It contains an arbitrary number of ordered data rows in between. Each row has exactly as many columns (words) as many props got defined for the presentation. The first column is always the X coordinate on a two-dimensional plot, the rest of the columns are Y coordinates for each property (trace). Cells are in the usual numeric format, without unit.

    Simulation setup: dc transition

     Output: time plot all
      analysis
       config begin
        type=tran_lin
        incr=1ms
        stop=200ms
       config end
      presentation
       config begin
        type=plot
       config end
       props begin (columns)
        x: time [s]
        in
        mid
        out
      props end
      data begin (first column is position on the x axis, the remaining columns are y values)
        0.00000000e+00	0.00000000e+00	0.00000000e+00	0.00000000e+00
        1.00000000e-08	0.00000000e+00	0.00000000e+00	0.00000000e+00
        2.00000000e-08	0.00000000e+00	0.00000000e+00	0.00000000e+00
        4.00000000e-08	0.00000000e+00	0.00000000e+00	0.00000000e+00
        8.00000000e-08	0.00000000e+00	0.00000000e+00	0.00000000e+00
        1.60000000e-07	0.00000000e+00	0.00000000e+00	0.00000000e+00
        3.20000000e-07	0.00000000e+00	0.00000000e+00	0.00000000e+00
        6.40000000e-07	0.00000000e+00	0.00000000e+00	0.00000000e+00
        1.00000000e-06	0.00000000e+00	0.00000000e+00	0.00000000e+00
        1.00512483e-06	2.56241633e-02	1.31319437e-08	3.73883304e-15
        1.01537450e-06	7.68724899e-02	6.56596959e-08	2.61718227e-14
        1.03587383e-06	1.79369143e-01	3.28298121e-07	2.50501430e-13
        1.06134248e-06	3.06712393e-01	9.47287438e-07	1.15292938e-12
        1.11227978e-06	5.61398892e-01	3.15823226e-06	6.96192034e-12
     data end