# AcuInterp

Interpolate an AcuSolve solution onto a user requested set of three-dimensional set of point locations.

## Syntax

acuInterp [options]

## Type

AcuSolve Post-Processing Program

## Description

AcuInterp is a post-processing utility that interpolates from the AcuSolve solution database onto a user requested set of point locations. The point locations are defined in three-dimensional space by providing the point_files attribute or coordinate_start, coordinate_end, and number_interpolation attributes to the application. Each of the quantities available in the solution database may be requested using the variables attribute with a comma separated list of variables to interpolate or expressions to interpolate, for example, v1=du_dy+x. The file format is modifiable given the user specified set of options for the header flag, fields, and output_file_format attributes.

In the following, the full name of each option is followed by its abbreviated name and its type. For a general description of option specifications, see Command Line Options and Configuration Files. See below for more individual option details:

help or h (boolean)
If set, the program prints a usage message and exits. The usage message includes all available options, their current values, and the place where each option is set.
problem or pb (string)
The name of the problem is specified via this option. This name is used to generate input file names and extracted surface file names.
run_id or run (integer)
Number of the run in which the extraction is requested. If run_id is set to 0, the last run in the working directory is assumed.
variables or vars (string)
Comma-separated list of variables to interpolate or expressions to interpolate from the solution database. These variables are the AcuSolve specific names for the variable quantities that are available in the solution database directly or when using expression syntax, a set of appreciated variables as described in the section below. The list of variables and expression abbreviations can be written to standard out using the query attribute.
time_steps or ts (string)
Specifies the time-steps to interpolate the data from. The attribute accepts integers and AcuSolve specific references for the first, last and increment step (F:L:10).
point_files or file (string)
Comma-separated list to specify the files used to interpolate from, when provided by you. Defines the set of x, y, z point locations to interpolate data from. The point_files attribute should reference file names that each contain rows of point locations with format, row index, x, y, z (using any delimiter).
coordinate_start or crds (string)
Specifies the location of the starting coordinate of the linear interpolation when no user input is provided for the point_files attribute.
coordinate_end or crde (string)
Specifies the location of the ending coordinate of the linear interpolation when no user input is provided for the point_files attribute.
number_interpolation or ninterp (integer)
Specifies the number of linear interpolation points to be used between coordinate_start and coordinate_end.
ale_flag or ale (boolean)
If this option is set to TRUE, the output locations will be updated dynamically based on the time-step selected in the time_steps attribute.
If this option is set to TRUE, the output files will contain a header to describe each of the columns in the interpolated dataset.
output_fields or fields (string)
Comma-separated list to specify the output fields that are printed to the output files. Specified by combining the abbreviated values id,crd,data into a comma-separated list, for example, crd,data or id,crd,data.
output_file_format or ofmt (enumerated)
Specifies the output format of the files written to disk. ASCII for text readable space delimited file, binary for compressed binary format.
query or q (boolean)
If this option is set to TRUE, the application will run in query mode. Query mode will simply print a list of variables that are available for the interpolation. The information returned is queried from the list of quantities available in the solution database and is problem specific based on the output data requested.
verbose or v (integer)
Set the verbose level for printing information to the screen. Each higher verbose level prints more information. If verbose is set to 0 (or less), only warning and error messages are printed. If verbose is set to 1, basic processing information is printed in addition to warning and error messages. This level is recommended. verbose levels greater than 1 provide information useful only for debugging.

## Examples

Consider the interpolation of the velocity along a vertical line in the interior of a nozzle at a fixed streamwise location:
acuInterp -vars velocity -crds 0.127,0.0,0.0 -crde 0.127,0.0515,0 -ts 5000
or alternatively the options may be put into the configuration file Acusim.cnf as follows:
acuInterp.pb=diffuser_compressible
acuInterp.vars=velocity
acuInterp.crds=0.127,0.0,0.0
acuInterp.crde=0.127,0.0515,0.0
acuInterp.ts=5000.0
The following will be printed to the standard output of the terminal:
acuInterp:
acuInterp:  Creating 100 linear interpolation points in 0.127,0.0,0.0 to 0.127,0.0515,0
acuInterp:
acuInterp:  Opening the AcuSolve solution data base
acuInterp:  Problem <diffuser_compressible> directory <ACUSIM.DIR> runId <1>
acuInterp:
acuInterp:  Opened run id <1>
acuInterp:
acuInterp:  Extracting coordinates and building node map
acuInterp:  Extracting element connectivity
acuInterp:  Building projection object
acuInterp:  Processing variables <velocity>
acuInterp:
acuInterp:  Processing step <5000>
acuInterp:  Writing file: interp.dat

The above example produces a single output file containing data interpolated from time-step 5000 to the linearly interpolated points created from the starting and ending coordinates. The output file will have the name diffuser_compressible_step_000005000.interp.dat.

The output file contains the following columns:
 X Y Z X-Vel Y-Vel Z-Vel 1.27e-01 4.16e-03 0.00e+00 2.98e+02 2.64e+01 0.00e+00

For a steady state simulation, only the last value is likely of interest to you, as it would be the converged solution for a Reynolds Averaged Navier-Stokes simulation. This time-step is output by default. Additional time-steps, if specified in the NODAL_OUTPUT command, can be requested with the -ts option as described above.

Next, consider the interpolation of the pressure, normalized by the inlet pressure along the bottom wall of a nozzle:
acuInterp -vars p=p/135000.0 -files diffuser_compressible.dat -ts
1000:2000:500
or alternatively the options may be put into the configuration file Acusim.cnf as follows:
acuInterp.pb=diffuser_compressible
acuInterp.vars=p=p/135000.0
acuInterp.files=diffuser_compressible.dat
acuInterp.ts=1000:2000:500
The following will be printed to the standard output of the terminal:
acuInterp:
acuInterp:  Reading points from file <diffuser_compressible.dat>
acuInterp:
acuInterp:  Opening the AcuSolve solution data base
acuInterp:  Problem <diffuser_compressible> directory <ACUSIM.DIR> runId <1>
acuInterp:
acuInterp:  Opened run id <1>
acuInterp:
acuInterp:  Extracting coordinates and building node map
acuInterp:  Extracting element connectivity
acuInterp:  Building projection object
acuInterp:  Processing variables <var=p/135000.0>
acuInterp:
acuInterp:  Processing step <1000>
acuInterp:  Evaluating user expression:  var
acuInterp:      Equation                    :  p/135000.0
acuInterp:  Writing file: diffuser_compressible.interp_step_00001000.dat
acuInterp:
acuInterp:  Processing step <1500>
acuInterp:  Evaluating user expression:  var
acuInterp:      Equation                    :  p/135000.0
acuInterp:  Writing file: diffuser_compressible.interp_step_00001500.dat
acuInterp:
acuInterp:  Processing step <2000>
acuInterp:  Evaluating user expression:  var
acuInterp:      Equation                    :  p/135000.0
acuInterp:  Writing file: diffuser_compressible.interp_step_00002000.dat

The above example produces three output files containing data interpolated from time-step 1000, 1500 and 2000 to the point location file as specified.

The output file contains the following columns:
 X Y Z var=p/135000.0 1.7775e-01 0.000e+00 0.000e+00 8.65e-01
To simply query the solution database, use the following command:
acuInterp -q
The following will be printed to the standard output of the terminal:
acuInterp:
acuInterp:  Opening the AcuSolve solution data base
acuInterp:  Problem <diffuser_compressible> directory <ACUSIM.DIR> runId <1>
acuInterp:
acuInterp:  Opened run id <1>
acuInterp:
acuInterp:  Available nodal output variables:
acuInterp:    velocity
acuInterp:    pressure
acuInterp:    temperature
acuInterp:    eddy_viscosity
acuInterp:    surface_y_plus
acuInterp:    surface_film_coefficient
acuInterp:    wall_shear_stress
acuInterp:    density
acuInterp:    mach_number
acuInterp:
acuInterp:  Available extended output variables:
acuInterp:    velocity
acuInterp:    pressure
acuInterp:    temperature
acuInterp:    eddy_viscosity
acuInterp:    surface_y_plus
acuInterp:    surface_film_coefficient
acuInterp:    wall_shear_stress
acuInterp:    density
acuInterp:    mach_number
acuInterp:    volume
acuInterp:    strain_rate_invariant_2
acuInterp:    velocity_magnitude
acuInterp:    vorticity
acuInterp:    running_ave_velocity
acuInterp:    running_ave_pressure
acuInterp:    running_ave_temperature
acuInterp:    running_ave_eddy_viscosity
acuInterp:    viscosity
acuInterp:    gravity
acuInterp:    specific_heat
acuInterp:    conductivity
acuInterp:    heat_source
acuInterp:    turbulence_y
acuInterp:    turbulence_y_plus
acuInterp:    material_viscosity
acuInterp:    material_conductivity
acuInterp:    total_pressure
acuInterp:    total_temperature
acuInterp:    cfl_number
acuInterp:
acuInterp:  Available derived quantity output variables:
acuInterp:    viscosity
acuInterp:    gravity
acuInterp:    specific_heat
acuInterp:    conductivity
acuInterp:    heat_source
acuInterp:    turbulence_y
acuInterp:    turbulence_y_plus
acuInterp:    material_viscosity
acuInterp:    material_conductivity
acuInterp:    total_pressure
acuInterp:    total_temperature
acuInterp:    cfl_number
acuInterp:
acuInterp:  Available running average output variables:
acuInterp:    runing_ave_running_ave_velocity
acuInterp:    runing_ave_running_ave_pressure
acuInterp:    runing_ave_running_ave_temperature
acuInterp:    runing_ave_running_ave_eddy_viscosity
acuInterp:
acuInterp:  Available time average output variables:
acuInterp:
acuInterp:  Expression syntax variables:
acuInterp:  x                  = crd
acuInterp:  y                  = crd
acuInterp:  z                  = crd
acuInterp:  u                  = velocity
acuInterp:  v                  = velocity
acuInterp:  w                  = velocity
acuInterp:  time_ave_u         = time_ave_velocity
acuInterp:  time_ave_v         = time_ave_velocity
acuInterp:  time_ave_w         = time_ave_velocity
acuInterp:  time_ave_uu_square = time_ave_velocity_square
acuInterp:  time_ave_vv_square = time_ave_velocity_square
acuInterp:  time_ave_ww_square = time_ave_velocity_square
acuInterp:  time_ave_uv_square = time_ave_velocity_square
acuInterp:  time_ave_vw_square = time_ave_velocity_square
acuInterp:  time_ave_wx_square = time_ave_velocity_square
acuInterp:  running_ave_u      = running_ave_velocity
acuInterp:  running_ave_v      = running_ave_velocity
acuInterp:  running_ave_w      = running_ave_velocity
acuInterp:  u_mag              = velocity_magnitude
acuInterp:  x_vort             = vorticity
acuInterp:  y_vort             = vorticity
acuInterp:  z_vort             = vorticity
acuInterp:  vort_mag           = vort_mag
acuInterp:  vort_re_num        = vort_re_num
acuInterp:  d                  = turbulence_y
acuInterp:  p                  = pressure
acuInterp:  running_ave_p      = running_ave_pressure
acuInterp:  time_ave_p         = time_ave_pressure
acuInterp:  T                  = temperature
acuInterp:  tau_x              = wall_shear_stress
acuInterp:  tau_y              = wall_shear_stress
acuInterp:  tau_z              = wall_shear_stress
acuInterp:  x_disp             = mesh_displacement
acuInterp:  y_disp             = mesh_displacement
acuInterp:  z_disp             = mesh_displacement
acuInterp:  x_mesh_vel         = mesh_velocity
acuInterp:  y_mesh_vel         = mesh_velocity
acuInterp:  z_mesh_vel         = mesh_velocity
acuInterp:  rho                = density
acuInterp:  mu_total           = viscosity
acuInterp:  mu                 = material_viscosity
acuInterp:  mu_t               = eddy_viscosity
acuInterp:  k                  = kinetic_energy
acuInterp:  omega              = eddy_frequency
acuInterp: