# Command-line¶

The code is run using:

`./zeno [OPTIONS]`

For example, the command to run ZENO for 1e6 random walks and 1e5
interior samples on an object described in the file `obj.bod`

with the
results being written to the file `out.csv`

is:

```
./zeno -i obj.bod --num-walks=1000000 --num-interior-samples=100000
--csv-output-file out.csv
```

Command-line options may also be stored in a config file. The example above
could also have been run by creating a file `config.cfg`

containing

```
input-file = obj.bod
num-walks = 1000000
num-interior-samples = 100000
csv-output-file = out.csv
```

and running

`./zeno -c config.cfg`

If an option given in a config file is also given on the command line, the command-line value overrides the config-file value.

Detailed descriptions of all options are below.

## Required command-line options¶

### Input file¶

The input or `.bod`

file must contain a list of geometric primitives that
define the shape of the object. See Defining the object(s) for
details on the content of this file. Note that it can also contain
optional quantities as specified in Optional inputs.
The input file is specified via the command-line argument

`-i <input file name>`

### Exterior calculation¶

Either the number of exterior walks, the maximum relative standard deviation of the capacitance, or the maximum relative standard deviation of the mean electric polarizability must be specified. If one of the relative standard deviations are specified, then the calculation will continue performing walks until the relative standard deviation is less than the specified value. One of the following options is required for running the exterior calculation.

`--num-walks=<number of walks>`

`--max-rsd-capacitance=<maximum relative standard deviation of capacitance>`

`--max-rsd-polarizability=<maximum relative standard deviation of mean electric polarizability>`

### Interior calculation¶

Either the number of interior samples or the maximum relative standard deviation of the volume must be specified. If the relative standard deviation is specified, then the calculation will continue performing walks until the relative standard deviation is less than the specified value. One of the following options is required for running the interior calculation.

`--num-interior-samples=<number of interior samples>`

`--max-rsd-volume=<maximum relative standard deviation of volume>`

## Description of command-line options¶

`-h` , |
`--help` |
Print help and exit |

`-V` , |
`--version` |
Print version and exit |

`-c` , |
`--config-file=string` |
Config file name |

`-i` , |
`--input-file=string` |
Input file name |

`--csv-output-file=string` |
Write output in CSV format to the specified file in addition to displaying the regular output | |

`--num-walks=int` |
Number of exterior walks to perform | |

`--num-interior-samples=int` |
Number of interior samples to take | |

`--max-rsd-capacitance=double` |
Perform exterior walks until the relative standard deviation of the capacitance drops below this value. Relative standard deviation is defined as | |

`--max-rsd-polarizability=double` |
Perform exterior walks until the relative standard deviation of the mean electric polarizability drops below this value. Relative standard deviation is defined as (Standard Deviation/Mean) \(\times\) 100% | |

`--max-rsd-volume=double` |
Take interior samples until the relative standard deviation of the volume drops below this value. Relative standard deviation is defined as | |

`--min-num-walks=int` |
Minimum number of exterior walks to perform when using max-relative standard deviation stopping conditions | |

`--min-num-interior-samples=int` |
Minimum number of interior samples to take when using max-relative standard deviation stopping conditions | |

`--max-run-time=double` |
Max time (in seconds) that the program is allowed to run. If this time is reached, the computation will be stopped and the results computed so far will be displayed | |

`--num-threads=int` |
Number of threads to use (default=Number of logical cores) | |

`--seed=INT` |
Seed for the random number generator (default=Randomly set) | |

`--surface-points-file-string` |
Name of file for writing the surface points from exterior calculation | |

`--interior-points-file=string` |
Name of file for writing the interior sample points | |

`--print-counts` |
Print statistics related to counts of hit points | |

`--print-benchmarks` |
Print detailed RAM and timing information |