# 4.17. IO Region

The Input_Output Region (IO Region) lets you use data from a previously-generated Exodus dataset (e.g. output from some other simulation code) in your simulation (as a initial condition, boundary condition, etc…).

It uses transfer and solution control to map the variables from the mesh they are saved on to the current problem’s mesh.

Note

Just like other Sierra Regions the Input_Output Region must have its own Finite Element model command block defined. A full description of the syntax can be found in the command references

As an example, let us assume that an input mesh for an Input_Output Region contains a nodal variable `ConvCoeff` that we wish to use in another Region. In this case an outline for one-way transfer of `ConvCoeff` to a Region, `second_region`, in a steady-state problem would be:

    Begin Sierra
      Begin Finite Element Model input_transfer
        ...
      End

      Begin Transfer my_first_transfer
        transfer commands for input_output_region to second_region
        SEND field hNd state none TO ConvCoeff state none
        ...
      End

      Begin Procedure My_Procedure
        Begin Solution Control Description
          Use System Main
          Begin System Main
            Begin Sequential MySolveBlock
              Advance io_region
              transfer my_first_transfer
              Advance second_Region
            End
          End
        End

        Begin Input_Output io_region
          USE FINITE ELEMENT MODEL my_input_transfer
        End

        Begin Fuego Region second_region
          use Finite Element Model input_transfer
          USER FIELD REAL NODE SCALAR ConvCoeff on surface_1
          ...
        End
        ...
      End
      ...
    End Sierra

## 4.17.1. Controlling Time

The Input_Output Region can also be used with transient data. When the IO region contains transient data, there are several options for controlling which time value to transfer to the solution region. The IO region will interpolate linearly between its time steps when sending data to the solution region.

> - Fixed Time: If you specify a fixed time in the IO region block, all transfers will use that time from the IO region data set. If the time you specify is larger than the last time in the IO region data set, the last time step will be used.

> - Offset Time: This is a constant offset added to the simulation time. For example, if an offset of 10 is provided, at simulation time 0 the IO region will send its data at 10 seconds. The offset is added to the simulation time regardless of whether periodicity is active or not.

> - Start Time: The start time should be provided along with `periodicity time`. If the start time is given as 25 and the periodicity as 10 then the simulation will use the time values between 25 and 35 from the IO region repeatedly once the simulation reaches 25. The default start time is 0.

> - Periodicity Time: This controls how long of a time period to repeat. The default periodicity is 0 (not enabled).

The syntax for these commands are described in the command reference section.

When `fixed time` is not specified, the IO Region time is selected using the following logic:

    if simulation_time > start_time and periodicity > 0
       io_region_time = start_time + (simulation_time - start_time) % periodicity + offset
    else
       io_region_time = simulation_time + offset

When `fixed time` was specified, `io_region_time = fixed_time`