[ Identification | Description | Input parameters | Output parameters | Links ]

# The `Virtual_input` Component

Source-like component that generates neutron events from an ascii/binary 'virtual source' file.

## Identification

- Author: E. Farhi
- Origin: ILL
- Date: Sep 28th, 2001
- Version: 1.16
- Modification history:
  - EF, Oct 2002. make use of shared read-table library.

## Description

     This component reads neutron events stored from a file, and sends them into
    the instrument. It thus replaces a Source component, using a previously
    computed neutron set. The 'source' file type may be either of text or binary
    format. The component may recognize its format automatically, but you may
    force the file type ('type' parameter). The number of neutron events for the
    simulation is set to the length of the 'source' file times the
    repetition parameter 'repeat_count' (1 by default).
      It is particularly useful to generate a virtual source at a point that few
    neutron reach. A long simulation will then only be performed once, to create
    the 'source' file. Further simulations are much faster if they start from
    this low flux position with the 'source' file.

    Possible file formats are:
    1- text column formatted with lines containing 11 values in the order:
          p x y z vx vy vz t sx sy sz stored into about 83 bytes/n.
    2- float or double binary files stored into 44 and 88 bytes/n
    (with the 11 values 'p x y z vx vy vz t sx sy sz') for float/double resp.

    EXAMPLE:
    To create a 'source' file collecting all neutron states, use:
      COMPONENT MySourceCreator = Virtual_output(file = "MySource.list")
    at the position where will be the Virtual_input.
    Then unactivate the part of the simulation description before (and including)
    the component MySourceCreator. Put the new instrument source:
      COMPONENT Source = Virtual_input(file="MySource.list")
    at the same position as 'MySourceCreator'.
    A Vitess file may be obtained from the 'Vitess_output' component or from a
    Vitess simulation (104 bytes per neutron) and read with Vitess_input.

## Input parameters

Parameters in boldface are required; the others are optional.

Name | Unit | Description | Default
--- | --- | --- | ---
file | str | Name of the neutron input file | 0
type | str | May be "text", "float" or "double" to force file type. default is text file | 0
verbose | 0/1 | Display additional information about source, recommanded | 0
repeat_count | 1 | Number of times the source must be generated | 1

## Output parameters

Name | Unit | Description | Default
--- | --- | --- | ---
read_block |  |  |
pos |  |  |
nrows |  |  |
Offset |  |  |
rTable |  |  |
repeat_number |  |  |
file_ncount |  |  |
mean_vx |  |  |
mean_vy |  |  |
mean_vz |  |  |
mean_dx |  |  |
mean_dy |  |  |
mean_dz |  |  |
n_neutrons |  |  |
min_x |  |  |
min_y |  |  |
min_z |  |  |
max_x |  |  |
max_y |  |  |
max_z |  |  |
min_vx |  |  |
min_vy |  |  |
min_vz |  |  |
max_vx |  |  |
max_vy |  |  |
max_vz |  |  |
first_block |  |  |
mean_x |  |  |
mean_y |  |  |
mean_z |  |  |

## Links

- Source code for `Virtual_input.comp`.

[ Identification | Description | Input parameters | Output parameters | Links ]