BTEC
Contents
Getting
Building
Configuring
Sensors
Currently, BTEC supports using sensor to monitor the thermal grid and laser irradiance. Thermal sensors are added to the main BTEC configuration file, irradiance sensors are added to the emitter files. A damage sensor is available, which monitors the thermal grid and computes the damage integral. The most common sensor configuration includes one or more thermal sensors to monitor the temperature at different locations of interest and a damage sensor that will be used to determine the damage threshold.
Assume we have one damage sensor to compute the damage integral at the surface of the tissue, configured in the file sensor-damage-surface.btec
, and two temperature sensors, configured in sensor-temp-surface.btec
and sensor-temp-100um.btec
to monitor the temperature at the tissue surface, and at a depth of 100 microns.
$ ls sensor-*btec sensor-damage-surface.btec sensor-temp-surface.btec sensor-temp-100um.btec
These config files are specified in the main BTEC config file. In the main config file, there will be a section similar to this
# BTEC main config ... Sensor[0] = "sensor-damage-surface.btec" Sensor[1] = "sensor-temp-surface.btec" SEnsor[2] = "sensor-temp-100um.btec" ...
Running
Output Files
BTEC can (and will) generate many different output files. What BTEC outputs, and how often it does so, can be configured (see Configuring). The output files can be separated into two categories: Sensor output and non-Sensor output.
(Warning: historical digression follows)
Originally, BTEC's output comparability was a single log interval, so that the user could tell BTEC how often to output data, but all data files were output at each log interval. This caused several problems, including inconvenience, so the ability to specify a log interval for each type of data separately. This allowed the user to "turn off" logging of some data types that were not important for their applications. This also made it possible to output the data of interest at a shorter log interval than the other data types (for example, writing the temperature distribution every time step, while only writing the laser source term every 1000 time steps) so that high resolution graphs could be created without filling the hard drive (Lt. Wooddell once filled an entire 2 TB hard drive by running BTEC with all logging turned on and leaving the simulation to run over night.) While this new capability was a great improvement, it still generated much more data than was typically needed. A common use scenario for BTEC involved running BTEC for several different laser beam configurations and plotting the temperature at a specific point (such as the point at the center of the beam on the tissue surface) as a function of time.
Sensors where introduced to solve this problem. A Sensor is an object that monitors a sub-section of the overall grid (like a sensor embedded in the tissue) and can log data. For example, a temperature sensor can be configured to monitor the volume contained in 0 < r < 0.1, 0.1 < z < 0.2, and then used to log the temperature within this volume. The sensor can log both the entire temperature distribution within the volume at each time step, or log just the maximum temperature in the volume. Multiple sensor can be configured to monitor different volumes in the tissue, and logging of the entire volume and the maximum value in the volume can be controlled separately.
Sensors are the preferred method for logging data in BTEC because they can be configured to only log the data that will be needed for post processing. However, not all data types can be monitored with a sensor (such as the source term), so the old logging system is still in place.
When running BTEC, the second argument specifies a datafile prefix that is used to name all output files. In the following description of output files, we will assume that BTEC has been ran as
$ BTECthermal main.btec __prefix
Sensor Log Files
- __prefix.Sensor-${i}-maxScal.btlog
- Contains the maximum value in the volume monitored by sensor ${i} for each time step that was logged. Only one of these files is created for a given sensor. For each time step that is logged (controlled by ScalarMaxLogInterval) one line is written to this file. Each line contains the time (first column), the maximum value (second column) and the r and z coordinates of the maximum value in the comments.
For example
- __prefix.Senosr-${i}-Scal.t.${time}.btlog
- Contains entire volume monitored by sensor ${i} at the time ${time}.