T/HIS 15.0 user manual

Transcript

1

2 For help and support from Oasys Ltd please contact: UK The Arup Campus Blythe Valley Park Solihull B90 8AE United Kingdom Tel: +44 121 213 3399 Email: [email protected] China Arup 39/F-41/F Huaihai Plaza 1045 Huaihai Road (M) Xuhui District Shanghai 200031 China +86 21 3118 8875 Tel: Email: [email protected] India Arup Ananth Info Park Hi-Tec City Madhapur Phase-II Hyderabad 500 081, Telangana India Tel: +91 40 44369797 / 98 Email: [email protected] Web: www.arup.com/dyna or contact your local Oasys Ltd distributor. LS-DYNA, LS-OPT and LS-PrePost are registered trademarks of Livermore Software Technology Corporation

3 User manual Version 15.0, May 2018 T/HIS 0.1 0 Preamble 0.1 Text conventions used in this manual 1.1 1 Introduction 1.1 1.1 Program Limits 1.2 1.2 Running T/HIS 1.4 1.3 Command Line Options 2.1 2 Using Screen Menus 2.1 2.1 Basic screen menu layout 2.2 2.2 Mouse and keyboard usage for screen-menu interface 2.4 2.3 Dialogue input in the screen menu interface 2.4 2.4 Window management in the screen interface 2.5 2.5 Dynamic Viewing (Using the mouse to change views). 2.6 2.6 "Tool Bar" Options 3.1 3 Graphs and Pages 3.1 3.1 Creating Graphs 3.2 3.2 Page Size 3.2 3.3 Page Layouts 3.2 3.3.1 Automatic Page Layout 3.6 3.4 Pages 3.6 3.5 Active Graphs 4.1 4 Global Commands and Pages 4.1 4.1 Page Number 4.1 4.2 PLOT (PL) 4.2 4.3 POINT (PT) 4.2 4.4 CLEAR (CL) 4.2 4.5 ZOOM (ZM) 4.2 4.6 AUTOSCALE (AU) 4.2 4.7 CENTRE (CE) 4.2 4.8 MANUAL 4.2 4.9 STOP 4.2 4.10 TIDY 4.3 4.11 Additional Commands 5.1 5 Main Menu 5.1 5.0 Selecting Curves 5.6 5.1 READ Options 5.30 5.2 WRITE Options 5.32 5.3 Curve Manager 5.42 5.4 Model Manager 5.44 5.5 EDIT Options 5.50 5.6 LINE STYLES 5.58 5.7 Command / Session Files 5.62 5.8 IMAGE Options 5.67 5.9 OPERATE Options 5.73 5.10 MATHS Options 5.74 5.11 AUTOMOTIVE Options 5.81 5.12 SEISMIC Options 5.83 5.13 MACRO Options 5.85 5.14 FAST-TCF Options 5.89 5.15 TITLE/AXES/LEGEND Options 5.98 5.16 DISPLAY Options 5.102 5.17 SETTINGS 5.107 5.18 MEASURE 5.111 5.19 Curve Groups 5.114 5.20 GRAPHS 5.115 5.21 PROPERTIES 5.120 5.22 UNITS 5.125 5.23 The Javascript Interface 5.131 5.24 Datum Lines 6.1 6 Other Options 6.1 6.1 Tool Bar 6.9 6.2 Graph Tool Bar 6.11 6.3 CURVE INFORMATION 6.12 6.4 Curve Histories ... 6.16 6.5 Keyboard Shortcuts 6.20 6.6 Preferences 6.21 6.7 PRIMER: Sychronising with PRIMER 7.1 7 FAST-TCF 7.1 7.0 FAST-TCF OVERVIEW 7.2 7.1 FAST-TCF INTRODUCTION 7.8 7.2 PAGE / GRAPH LAYOUT AND SELECTION 7.10 7.3 INPUT SYNTAX TO LOAD OTHER FILES Page i

4 T/HIS User manual Version 15.0, May 2018 7.11 7.4 INPUT FOR DATA EXTRACTION REQUESTS 7.29 7.5 UNITS 7.31 7.6 CURVE TAGS 7.33 7.7 CURVE GROUPS 7.34 7.8 PERFORMING FAST-TCF CURVE OPERATIONS 7.38 7.9 APPLYING EXTRA OPTIONS TO DATA REQUESTS 7.39 7.10 Setting properties for curves 7.41 7.11 Defining Datums 7.43 7.12 FAST-TCF IMAGE OUTPUT OPTIONS 7.51 7.13 Outputting curve properties to text files, variables and REPORTER 7.55 7.14 FAST-TCF CURVE OUTPUT 7.56 7.15 FAST-TCF ADDITIONAL 8.1 8 Quick Find 8.1 Introduction 8.1 Fuzzy Matching 8.2 Search Terms 8.3 Tutorials 8.3 Options A.1 APPENDICES A.2 APPENDIX A - LS-DYNA Data Components B.1 APPENDIX B - T/HIS CURVE FILE FORMAT C.1 APPENDIX C - T/HIS BULK DATA FILE FORMAT D.1 APPENDIX D - FILTERING E.1 APPENDIX E - INJURY CRITERIA F.1 APPENDIX F - Curve Correlation G.1 APPENDIX G - The ERROR Calculation H.1 APPENDIX H - The "oa_pref" preference file I.1 APPENDIX I - Windows File Associations J.1 APPENDIX J - T-HIS JavaScript API K.1 APPENDIX K - Typed Commands L.1 Installation organisation L.1 Version 15.0 Installation structure M.1 JaDe: The JavaScript debugger M.1 Viewing the script files and functions M.1 Adding/removing breakpoints M.2 Running the script M.3 Printing the value of a variable M.4 The call stack M.5 Exceptions N.1 Licences used in software N.1 Expat N.1 FFmpeg N.1 Jpeg N.2 Libcurl N.2 Libfame N.2 Libgif N.2 Libpng N.4 Libxlsxwriter N.5 Openssl N.6 PCRE N.7 POV-Ray N.7 SmoothSort N.8 Spidermonkey N.12 Win-iconv N.12 Zlib Page ii

5 User manual Version 15.0, May 2018 T/HIS 0 Preamble Text conventions used in this manual Typefaces Three different typefaces are used in this manual: Manual text This typeface is used for text in this manual. Computer This one is used to show what the computer types. It is also used for equations, keywords (eg type *PART ) etc. This one is used to show what you must type. Operator type APPLY ) This one is used for screen menu buttons (eg Button text Notation Triangular, round and square brackets have been used as follows: • Triangular To show generic items, and special keys. For example: Round • To show optional items during input, for example: () () And also to show defaults when the computer prompts you, eg: Give new value (10) : Give model number (12) : Square • To show advisory information at computer prompts, eg Give filename: [.key] : THIS >>> [H for Help] : Page 0.1

6 T/HIS User manual Version 15.0, May 2018 Page 0.2

7 User manual Version 15.0, May 2018 T/HIS 1 Introduction T/HIS is an x/y plotting program, specifically written to perform two functions: 1. To produce time-history plots from transient analyses, such as those performed using LS-DYNA. 2. To plot any form of x/y data that is produced either by a program or by directly typing in values. T/HIS is a graphically driven, interactive program. Input and manipulation of data is through a graphical user interface on systems capable of running X-Windows applications; selections are made through "pressing buttons" using a mouse. On machines not capable of running X-Windows it is also possible to use T/HIS in a "command line" mode of operation; instructions are entered through the keyboard to perform the required operations. 1.1 Program Limits There are a number of limits in T/HIS of which the user should be aware. These are listed below: T/HIS can have a maximum of 32 graphs Number of graphs Number of curves The number of curves is unlimited The number of points that can be defined per curve is Number of points unlimited. Time-history blocks In the interface to the LS-DYNA time-history (.thf) file there is a limit of 100,000 items in each of the node, solid, beam, shell and thick shell time-history blocks: thus 500,000 items overall. In the interface to the LS-DYNA extra time-history file up to 100,000 nodal reactions (or groups of (.xtf) reactions) may be processed. Number of colours By default, T/HIS curves wrap around the following six colours in order: WHITE RED GREEN BLUE CYAN MAGENTA However, a further 24 predefined colours are available if required and 6 user defined ones can be created. The title can contain up to 80 characters. Title Labels Labels for axes and lines can contain up to 80 characters. Page 1.1

8 User manual Version 15.0, May 2018 T/HIS 1.2 Running T/HIS 1.2.1 Starting the code For users on a device with a window manager T/HIS is run from the T/HIS button in the SHELL: If your system has been customised locally you may have to use some other command or icon: consult your system manager in this case. 1.2.2 Graphics Driver and Platforms T/HIS 9.3 onwards use a OpenGL graphics driver. Both the 32 and 64 bit versions of T/HIS use 32bit (single precision) numbers to store and plot data. The 32 bit version is limited to a maximum of 4GB of memory on all platform (3GB on windows). Page 1.2

9 User manual Version 15.0, May 2018 T/HIS 1.2.2.1 "Batch" Mode T/HIS can run in "batch" mode where the main application window is not displayed on the screen. "Batch" mode is available on all platforms. To start T/HIS in batch mode use the command line option "-batch". e.g. this14_64.exe -tcf=script.inp -batch When running in "batch" mode T/HIS will automatically exit at the end of the script regardless of whether or not "-exit" is specified. : All image, postscript and PDF outputs require a DISPLAY on UNIX / LINUX systems. If you are running NOTE T/HIS in "batch" mode as part of a automatic post processing script then T/HIS must have a X Windows DISPLAY even though the main window is not displayed. If the machine you are using is a server or part of a cluster without an X-Server then T/HIS can be used with the Xvfb software. 1.2.3 Selecting a device when a window manager is not running If you are running on a non-window device, for example a Tektronix display or emulator, you may not be able to use screen menus. Instead you will have to run in "command-line" mode. It is very unlikely that a user on a modern workstation will see these options, since the machine will have a window manager and will be running in "screen menu" mode. If they do appear it suggests that the machine and/or software are wrongly set up: see 1.2.4 below for suggested remedies. 1.2.4 If T/HIS will not start in “screen-menu” mode You may be running on a device with a window manager, but still only get the command-line prompt (and probably no menu driven _93 shell either). This is almost certainly because of one or both of the following setup errors: (1) The DISPLAY environment variable has not been set up, or has been set incorrectly. This tells the X11 window manager where to place windows, and it must be set to point to your screen. Its generic setup string is: (C shell syntax) setenv DISPLAY : Where is your machine’s name or internet address, for example: setenv DISPLAY :0 (Default display :0 on this machine) setenv DISPLAY tigger:0 (Default display :0 on machine "tigger") setenv DISPLAY 69.177.15.2:0 (Default display :0, address 69.177.15.2) You may have to use the raw network address if the machine name has not been added to your /etc/hosts file, or possibly the "yellow pages" server hosts file. (2) Your machine (strictly the X11 "server") has not been told to accept window manager requests from remote machines. This is usually the case when you are trying to display from a remote machine over a network, and you get the message similar to: Xlib: connection to "" refused by server Xlib: Client is not authorised to connect to server In this case go to a window with a Unix prompt on your machine, and type: xhost + Page 1.3

10 T/HIS User manual Version 15.0, May 2018 Which tells your window manager to accept requests from any remote client. It will produce a confirmatory message, which will be something like: access control disabled, clients can connect from any host If T/HIS still fails to work then please contact your system manager, or contact Oasys Ltd for advice and help. 1.2.5 Command Line Mode Command line mode is the main method of data input on non X-Windows devices. Command line mode is also available within the X-Windows screen interface and is accessed through the dialogue window. In command line mode the user will be presented with a prompt which also indicates which level of the menu structure the user is at. For example: Defaults > In response to the prompt a valid option must be given. These are usually a two or three letter abbreviation of a command; for example PL is the command to plot a graph. A list of the commands available is provided by typing M (for Menu). In addition to commands specific to one menu there are a number of commands which have the same effect throughout T/HIS. - (Quit) Abort and return to current menu Q ! - Go up a level in the menu structure - Return to the top level menu / in a string of commands ; - Equivalent to a M - Lists menu. Several commands can be strung together on one line, separated by spaces, for example: /DE GR ON Numeric data can also be included in the command line if required, for example: /OP ADX #1 7.2 # Commands can be in upper or lower case. As well as menu level commands you will be asked questions such as: THF file to read (filename_1)? The default response, if one exists, is given in parentheses. 1.3 Command Line Options Instead of starting T/HIS using the Command shell it is also possible to start T/HIS from the command line with a number of optional input parameters. Starting T/HIS from the command line offers a number of advantages. • Faster start-up is possible by pre-selecting the device type. The input filename can be specified and opened automatically. • Faster start-up is possible by pre-selecting the device type • Argument format: () ... () () T/HIS 15.0 can be started with a number of optional command line options -d= Valid device types are: Graphics device type opengl OpenGL -d=default eg tty No windows OpenGL default Page 1.4

11 User manual Version 15.0, May 2018 T/HIS Command file name Any valid T/HIS command file filename -cf= -cf=run_1.tcf eg -tcf= FAST-TCF input file Any valid T/HIS FAST-TCF command file filename eg -tcf=run_1.inp -set= Any valid T/HIS settings file Settings file -set=this001.set eg Any valid T/HIS JavaScript file -js= Javascript eg -js=sort_curve.js Any valid string. Javascript Arguments -js_arg= The arguments can be accessed in the script by -js_arg=abc eg arguments array. using the global Multiple arguments can be given to a script by using more than one -js_arg command line argument. LS-DYNA Model Any filename from the analysis eg run_1.thf This should be the last argument on the All the files associated with the model command line. are opened and the contents scanned. The model list file should contain the full -model_list= LS-DYNA Model list pathname of one file from each model that eg -model_List=job_list T/HIS should open. Each file should be on a Specify a file containing a list of models for T/HIS to automatically seperate line and it should be the first item on each line (other items seperated with commas open. can be specified on the same line for use with REPORTER). Model Database file -mdb= The model database file is an XML format file that contains information on where models are Specify the name of the default model eg located along with a brief description of each -mdb=database.xml model The model database can be used to database file. easily select multiple models.. T/HIS curve file -cur= or -curve= Specify a T/HIS curve file containing one or more curves for T/HIS to eg -cur=test.cur automatically open. T/HIS curve file list -curve_list= The curve list file should contain the full or pathname of each cure file that you want T/HIS -curve= to open. Each file should be on a separate line. Specify a file containing a list of curve files for T/HIS to automatically open. -cur=test.cur eg T/HIS bulk data file -bdf= Specify a T/HIS BDF file containing eg -bdf=test.cur one or more curves for T/HIS to automatically open. -maximise Automatically maximises the T/HIS window so that it occupies the full screen. Read THF file -thf= Read XTF file -xtf= Read LSDA (binout) file -lsda= Read ASIIC files -ascii= -pref= must be a valid "oa_pref" file. Specifying a custom "oa_pref" file. If it has no path prefixed, the file is assumed to This causes an extra, optional "oa_pref" file to be read. be in the OA_INSTALL directory. Any legal filename may be used. Page 1.5

12 User manual Version 15.0, May 2018 T/HIS Use ELOUT instead of ELOUTDET -use_elout= By default T/HIS uses the ELOUTDET part of the LSDA file in preference to ELOUT if the LSDA file contains both. This option can be used to force T/HIS to use the ELOUT data when reading Shell and ThickShell data as the ELOUT data can be in the global coordinate system instead of the element local coordinate system. Any valid directory -start_in= Specify a directory for T/HIS to start in. -xres= Set the width of the T/HIS graph window (in pixels) -xres=800 eg -yres= Set the height of the T/HIS graph window (in pixels) eg -yres=600 Windows only. Run T/HIS without the console -noconsole window. For this option to work you must also specify a -batch Run T/HIS in "batch" mode where the command file " -cf=filename " and the main application window is not displayed on the screen. name of the PTF file to open. This option will automatically set " -exit " so that D3PLOT terminates after playing the command file. Redirect output from the console -eo= -eo= is designed for the user to window to a file on Windows. -eo suppress the console and redirect logfile output -eo=default to the specified filename. In order to permit multiple sessions to coexist on the same To redirect output on Unix/Linux use the shell redirection options (typically machine the process id will be appended to the part of the filenameto give > for , & for ) _pid.. If plain "-eo" or "-eo=default" are found then filename generation is automatic, and the first valid of: %TEMP%\this_log_.txt %TMP%\this_log_.txt %HOMESHARE%\this_log_.txt %USERPROFILE%\this_log_.txt will be used. Stop and exit after command file -exit Some examples for T/HIS might be: .thf file) pathname/this12.exe -d=x run_2.thf (Use device X, open a (No graphics, run command file) pathname/this12.exe -d=tty cf=batch.tcf -exit Note that no spaces should be left in the syntax =. " -d = x " is illegal. For example: -d=x " Correct syntax is: " Page 1.6

13 User manual Version 15.0, May 2018 T/HIS 2 Using Screen Menus n B i c s c r e e n m e s u l a y o u t . a 1 2 M o u s e a n d 2 e y b o a r d u s a g e . 2 k 3 i a l o g u D i n p u t . 2 e 4 W i n d o w m a n a g e m e n t 2 . i 5 y n a m i c V i e w i n g ( U s i n g t h e m o u s e t o c h a n g e v D e w s ) 2 . i 6 r a p h i c s B o x O p t G o n s 2 . Versions of T/HIS prior to release 6.1 only had a "command-line" interface. This has been preserved for backwards compatibility, but a "screen-menu" interface has been added which allows you to drive the program almost entirely with the mouse. 2.1 Basic screen menu layout T/HIS runs within a single window, owned by the window manager, which has several sub-windows inside it. A typical T/HIS session will look like this: The various sub-windows always exist within the master window, and may be moved and resized at will inside it. They will keep their relative size and position as the master window is changed in size and/or shape, and will reappear after the main window is de-iconised. Page 2.1

14 T/HIS User manual Version 15.0, May 2018 The default layout of the main sub-windows is as follows: These windows cannot be dismissed. A brief description of their functions is: Provides access to the majority of the commands and options available in T/HIS through a series of Main Menu e c t i o sub menus (see 5 ). Options S n Is where graphs are drawn. In T/HIS 15.0 this area can contain a maximum of 32 graphs (see Graphics area c t i o n 3 ). Alternativley if graphs have been organised into pages (see S e c t i o n 3 . 3 ) then this area S e will display a single page of graphs. Allows "command-line" input and output, also provides a listing area for messages. Dialogue & list Displays the commands and options associated the current selection fromthe main menu options. Menu Area o e c t i Gives access to commonly used commands (see n 4 ). Global S Commands While you are free to reposition these master windows it is recommended that you keep to this default layout. This is because when further sub-windows appear their position and size is designed assuming this layout, and aims to obscure as little useful information as possible. 2.2 Mouse and keyboard usage for screen-menu interface All screen-menu operations are driven with the left mouse button, with the following exceptions: (a) Text in the dialogue area and text boxes requires keyboard entry. (b) Text strings saved in the cursor "cut" buffer may be "pasted" into dialogue areas and text boxes using the middle mouse button. The primitive "widgets" in the menu interface are used as follows: BUTTONS: Screen buttons are depressed by clicking on them, but action only takes place when the mouse button is released, so it is safe to drag the (depressed) mouse around the screen. Page 2.2

15 User manual Version 15.0, May 2018 T/HIS Buttons may also be greyed out to indicate that the option is not currently available. Buttons with " ... " after them will usually invoke sub-menus. Buttons with an " " symbol may be : "Popup" window invocation > selected normally with the left mouse button, but if the right mouse button is depressed over them it will invoke a "popup" window. Holding the right mouse button down move the cursor into this window to make a selection, or move elsewhere and release the button to deactivate the popup. SLIDERS: Sliders are moved by clicking on the slider button itself, and then dragging it to a new position. They may also be moved automatically by clicking on, and holding down, one of the arrows at either end. TEXT BOXES: To enter text in a text box: first make it "live" by clicking to enter the on it, then type in text, then type string. Clicking on a "live" box for a second time is exactly the same as typing , so clicking twice on a box effectively enters its current contents. You can use the left and right arrow keys for line editing within a box: text entry takes place after the current cursor position. RADIO BOXES A "radio" set is provided where only one selection is possible from a range of options. In this example the postscript laser output has been set to a single image per page. MENU SELECTIONS: Menus of items are used when you need to make one or more selections from a (potentially) long list. Click on the row you want to select: clicking on a row that is already selected will have the effect of unselecting it. When the list is too long to display in the window you can use the vertical scroll-bars to move up and down it. A range of items may be selected by either 1) Click on the first item and hold down the mouse key, drag the mouse to the last item in the list. All items between the first and last including the first and last are selected. or 2) Click on the first item, hold down the SHIFT key and click on the last item in the list. All items between the first and last including the first and last are selected. Page 2.3

16 T/HIS User manual Version 15.0, May 2018 2.3 Dialogue input in the screen menu interface The full command-line capability is preserved when T/HIS is running in screen-menu mode, and you are free to mix command-line and mouse-driven input at will. There are some situations in which command-line input is more efficient: for example when entering lists of explicit entities. Commands are entered in the dialogue box: As this example shows the dialogue box is also used for listing messages, warnings and errors to the screen. It can be scrolled back and forth (its buffer is 200 lines long) to review earlier messages. The following colours are used: Normal messages and prompts Yellow Text typed in by you White Magenta Warning messages Red Error messages There is a minor limitation when mixing command-line and screen-menu mode: you cannot perform the same function simultaneously in both modes. If you attempt to do so you will get the message: WARNING: recursive access attempted And you will not be permitted to continue. 2.4 Window management in the screen interface Moving, resizing and scrolling of windows is based on the conventions used in the Motif Window Manager. Click down on its title bar, then drag the window to where you want it to be. A "rubber-band" To move a window: outline moves to show the window’s current position. To resize a Either window: Click on a border bar to move just that side, or on a corner bar to move both sides attached to that corner. Again, a rubber-band outline shows you the new shape. or button in the top right hand corner of the window to increase the size of MAXIMISE Use the the window to the largest possible size. Page 2.4

17 User manual Version 15.0, May 2018 T/HIS If a window has got too small for its contents then horizontal and/or vertical scrollbars will appear. To scroll a Click on a scrollbar slider and move it to the desired position, the window contents will scroll as you do so. Alternatively click on the arrows at either end of the scrollbar for timed motion in that window: direction. To minimise Click on the button in the top right hand corner of the window. When a window has been iconised a window: ICON it will appear in the area at the bottom of the screen. To restore a Iconised windows may be restored by clicking on the icon in the ICON area. window: 2.5 Dynamic Viewing (Using the mouse to change views). "Dynamic" viewing is the name given to the process in which you perform viewing transformations by moving the mouse around the screen. 2.5.1 Dynamic Translation. Dynamic translation uses + The cursor symbol is yellow, and looks like: The relationship between mouse and image motion is intuitive: the object tracks the mouse motion in the screen XY plane. The initial position of the mouse is irrelevant. Page 2.5

18 T/HIS User manual Version 15.0, May 2018 2.5.2 Dynamic Magnification (Scaling). + Dynamic scaling uses The cursor symbol is green, and looks like: Mouse motion to the right and up makes the image larger, left and down smaller. The initial position of the mouse is irrelevant. A horizontal movement will scale just the x-axis while a vertical movement will scale just the y-axis. 2.6 "Tool Bar" Options Across the top of the main graphics window are a number of buttons that can be used to access other T/HIS menus (see c t i o n 6 . 1 ) for more details.. S e d a i m i s e x to take up the whole of the main window these buttons can be used to access the rest If the graphics box is m of the T/HIS menus without having to resize the graphics box between commands. Almost all of the options and functions in these menus may also be accessed from other menu locations, e.g. the Main Menu area. Page 2.6

19 User manual Version 15.0, May 2018 T/HIS 3 Graphs and Pages r C a t i n g G e a p h s . r 1 3 P a g e S i z e 3 . 2 P 3 g e L a y o u t s a . 3 P a g e s 4 . 3 5 A c t i v e / I n a c t i v e G r a p h s 3 . T/HIS15.0can display a maximum of 32 graphs. Each graph can have a different appearance and they can display different curves. Graphs can be laid out using a number of different formats and they can be organised into ’Pages’. 3.1 Creating Graphs Create Graphs Create a new graph. h o r t c u t k e y ’G’ can The s also be used to create new graphs. Number of This option can be used graphs to to create multiple graphs. create Page 3.1

20 T/HIS User manual Version 15.0, May 2018 When new graphs are created the initial settings for each graph can be copied from 3 different sources. e D p l a y and A x i s S s t t i n g s are copied from the preference file. The i Create using preference settings Create using current i D p l a y and A x i s S e t t i n g s are copied from the current settings in the The s Display and Axis menus. settings Copy settings from graph n The D p l a y and A x i s S e t t i n g s are copied from the specified graph. i s 3.2 Page Size These options can be used to specify the total size of the area (in pixels) used by the graph windows. 3.3 Page Layouts 3.3.1 Automatic Page Layout If an Automatic page layout is used and the x 1 , 2 x 2 , 3 x 3 or X x Y layout is set to 1 T/HIS will automatically create multiple pages and position the graphs on each page if required. Tile Wide All of the graphs are positioned on a single page. Page 3.2

21 T/HIS User manual Version 15.0, May 2018 Tile Tall All of the graphs are positioned on a single page. Cascade All of the graphs are positioned on a single page 1 x 1 Each graph is positioned on it’s own page. 2 x 2 Graphs are arranged in a 2 by 2 grid. If there are more than 4 graphs then graphs 1 to 4 are positioned on page 1, 5 to 8 on page 2 ... Page 3.3

22 T/HIS User manual Version 15.0, May 2018 3 x 3 Graphs are arranged in a 3 by 3 grid. If there are more than 9 graphs then graphs 1 to 9 are positioned on page 1, 10 to 18 on page 2 ... X x Y Graphs are arranged in a X by Y grid. 3.3.2 Manual Page Layout Manual page layout can be used to give more control over which graphs appear on which page. Unlike the Automatic page layouts a graph can appear on more than one page. Advanced The Advanced option displays the Page Layout menu. This menu can be used to select which graphs appear on each page. Each graph can appear on more than one page. A range of graphs can be added/removed from pages by selecting the first graph/page combination and then holding down SHIFT while selecting the second graph/page. Each page can have a different layout or they can all be the same. Page 3.4

23 T/HIS User manual Version 15.0, May 2018 y A u t o m a t i c P a g e L a Graph Layout o u t With the Advanced option the options work in exactly the same way as the options, except they only position the graphs defined on each page. If for example T/HIS has 6 graphs defined and graphs 2,3,4,5 are defined on page 1 and graphs 1 and 6 are on page 2 then the different graph layout options would produce the following. Page 2 Page 1 Tile Wide Tile Tall Cascade 1 x 1 (stacked on top of each other) Page 3.5

24 User manual Version 15.0, May 2018 T/HIS 2 x 2 3 x 3 X x Y Layout depends on X and Y Layout depends on X and Y 3.4 Pages T/HIS can have a maximum of 32 pages, each page can contain multiple graphs. For more information on selecting e e S e c t i o n 4 . 1 . The I m a g e O u t p u t options and the F A S T - T C F C r e a t e option can the currently displayed page s produce output for either a single page or multiple pages if graphs are located on more than one page. Active Graphs 3.5 If T/HIS contains more than one graph then each graph can be toggled between being active or inactive. All the graphs can be activated using the All button or deactivated using the None button. There is a popup menu attached to each button that can be used to select , Raise the graph so that it is in front of any others or to that graph Only the graph. Delete When a graph is deleted any graphs with higher numbers are renumbered downwards to remove any gaps in the graph numbering. Graphs can also be activated / deactivated using the button located in the top left hand corner or each graph. Page 3.6

25 T/HIS User manual Version 15.0, May 2018 e s p l a y and T i t l D / A x e s menus that control the appearance of graphs are only applied to active The options in the i graphs. When new curves are created by reading in data from files the new curves are automatically unblanked in all of the currently active graphs and blanked in any inactive graphs. Page 3.7

26 T/HIS User manual Version 15.0, May 2018 Page 3.8

27 User manual Version 15.0, May 2018 T/HIS 4 Global Commands and Pages a g e N u m b e r 4 1 . P L T P O 4 . 2 O I N T 4 . 3 P L E A R C 4 . 4 Z O O 4 . 5 M 6 U T O S C A L E 4 . A C N T R E 7 E 4 . M A N 4 A L . 8 U 9 S T O P . 4 1 0 T I D Y 4 . n 1 d d i t i o n a l C o m m a A d s 4 1 . panel. (The command line codes are The following commands are to be found as buttons on the GLOBAL MENU given in parentheses.) button at the top of the PLOTTING All of the commands in the GLOBAL MENU can also be accessed via the graphics window. 4.1 Page Number e e s e c t i o n 3 . 1 ) then the graphs can be positioned on seperate Pages within If T/HIS contains more than one graph ( s T/HIS. This menu can be used to select a specific page or it can be used to step through the pages one by one. XXXXXXXXXXXXXXX Shortcut Key XXXXXXXXXXXXXXX Goto Page 1 Home Page Up Go back 1 Page N/A Goto Page (n) Page Down Go back 1 Page Goto Page 32 End PLOT (PL) 4.2 e c t i o n 5 . 3 ). This option will plot all the curves that are currently UNBLANKED (see S Page 4.1

28 T/HIS User manual Version 15.0, May 2018 4.3 POINT (PT) When selected this option waits for the user to pick a point in the main graphics screen. Once a point has been picked the and values of the point picked are reported along with the ID of the nearest curve and the nearest point on that curve. After a point has been selected on the screen the slider may be used to move to other points along the same curve. CLEAR 4.4 (CL) Clears the graphics screen. ZOOM (ZM) 4.5 The cursor appears on the screen and may be used to select the required plot area by choosing opposite corners of a box. implicitly turns autoscaling off. The graphs are then replotted. Using ZOOM (AU) AUTOSCALE 4.6 Autoscales the plot size for all current unblanked curves in the graphics window and re-displays the plot. (CE) 4.7 CENTRE Pick a point on the screen using the cursor to be the new plot centre. It affects the x/y offsets but not the scales. MANUAL 4.8 Displays the online (HTML) version of the manual 4.9 STOP Some operations, like reading a file containing many curves in to T/HIS, can take a long time. This button can be used to stop some long opertaions without having to exit from T/HIS. 4.10 TIDY This option can be used to reset the menu layout to the default settings. Page 4.2

29 User manual Version 15.0, May 2018 T/HIS 4.11 Additional Commands A number of additional global commands exist in command line mode. These functions exist in screen menu mode within other menu levels. Creates a postscript plot file. Either A4 landscape or A4 portrait formats may be chosen. A title and figure (PF) UTILITIES menu. number are also requested. Other plot setting may be made in the command line mode Blank a currently displayed curve. (BL) Unblank a curve that has been blanked. (UB) Remove (delete) a curve. Once a curve has been removed it is lost from the system. (RM) RM *. ) (ER) Erase (delete) all existing curves from T/HIS. (Equivalent to the command (GS) Global status: displays the current number of curves, their labels and whether they are blanked. (CO) Condense: renumbers all curves to fill any gaps in curve numbers. (LM) Gives the current program limits. (FT) File tracking: lists the 20 files which have been accessed most recently by T/HIS, giving details of the type of file and whether it was read from or written to. Exits (leaves) the program. (EX) Page 4.3

30 T/HIS User manual Version 15.0, May 2018 Page 4.4

31 T/HIS User manual Version 15.0, May 2018 5 Main Menu E A D O p t i o n s 5 R . 1 R 2 E O p t i o n s . I 5 W T g U E M a n a V e r C 3 . 5 R O D E L M a n a g e r 5 . 4 M D . T O p t i o n s 5 5 E I T n L E M e S u 5 . 6 Y i o m a n d F C l e 7 . 5 m I M A G E O p t i o n s 5 . 8 O P R A T E O p t i o n s 9 . 5 E i M T H S O p t A o n s 1 . 5 0 MAIN MENU provides access to a number of separate menus that perform The T t M O T I V E O p U i o n s 5 . 1 1 A O most of the operations available within T/HIS from reading in data to producing I M I C O p E i o n s 5 . t 1 2 S S postscript laser files. s O p t i o n O A M 3 R 1 . 5 C T - T C F O p t i o n s 5 . 1 4 F A S L T A X E S O p t i o n s I T 5 1 . 5 E / L S O p t i o n s I D 6 1 . 5 A P Y T N S M e n u T G E S 7 1 . 5 I U R E M 5 n u . 1 8 M E A S e U S M e n u 5 . 1 9 G R O P R H M e n u A S G 0 2 . 5 P P E R T I E S M e n u 5 . 2 1 P R O T . e n u 5 2 2 U N I S M u S a i p t M e n c v a J 3 2 . 5 r u m M e n u 5 . 2 4 D a t 5.0 Selecting Curves 5.0.1 Input Curves By Curve ID A number of the menus require a range of curves to be selected. When a range of curves has to be selected a menu containing a list of the available curves will be displayed (see figure, right). A range or curves may be selected by either Click on the first item and hold down 1. the mouse key, drag the mouse to the last item in the list. All items between the first and last including the first and last are selected. Click on the first item, hold down the 2. SHIFT key and click on the last item in the list. All items between the first and last including the first and last are selected. Page 5.1

32 T/HIS User manual Version 15.0, May 2018 VISIBLE (P)age This option will select all of the curves that are unblanked in any graph on the current page. VISIBLE (A)ll Pages This option will select all curves that are unblanked in at least one graph. PICK Alternatively curves may be picked from the screen. With this option the left mouse button is used to select curves while the right button deselects curves. As each curve is selected/deselected its name and number will be reported to the user and it will be highlighted on the screen. A range of curves can be selected interactively by dragging out an area on the screen while holding down the left mouse button. FILTER... This option can be used to filter the list of curves displayed by model. When this option is selected a list containing all of the current models in T/HIS is displayed and the models can be selected or deselected. Any curves that belong to a deselected model will then be filtered out of the curve list. SHOW GROUPS This option will display a list of the currently defined curve groups instead of curves By Curve Group In addition to selecting individual curves it is u r v e G r o u p also possible to select curves by C if they have been defined. If a curve is defined in more than one • group then it will be selected if at least one of the groups is selected. • If more than one group containing the same curve is selected then the curve will only be counted once as an input curve. Page 5.2

33 User manual Version 15.0, May 2018 T/HIS By Command Line In command line mode a single curve may be selected by typing in a range. A valid syntax is: #27 A single curve number e.g. e.g. #10:#30 (no gaps, " : " mandatory) A "from":"to" range ) A compound list in "(..)" e.g. ( #1 #2 #10:#30 #3 #97 In all contexts the order in which a group is defined does NOT influence the order in which it is processed. It is ALWAYS processed in ascending sequential order. Thus the addition operation /OP ADD (#30 #20 #10) (#1 #2 #3) #40 will produce the results #40 = #10 + #1 #41 = #20 + #2 #42 = #30 + #3 5.0.2 Output Curves All operations that generate new curves must have a target curve defined. This must be one of the following: nnn a specific curve number #nnn meaning "the lowest free curve" # meaning "the highest free curve" % In all cases output will start at the relevant curve number, however defined, and will rise sequentially with no gaps. This can cause an existing curve to be overwritten, or the output curve number to exceed the limit of 999. Both conditions are checked for: a warning is given if either will occur should the operation go ahead, and an opportunity given to modify or abort the pending operation. There is a further output option that is only valid for operations where the input is a curve group: . meaning "overwrite the input curve(s)" In this case the input curves are overwritten without warning. For example, this option might be used to integrate a set of curves, overwriting the original results with the integrated values. Any curve number between 1 and 999 may be used as an input or output curve. It is not necessary to use curves sequentially; gaps are permitted in curve number usage. Therefore curves #1 and #10 can be used, for example, without having to use the intervening curves #2 to #9. Likewise, deleting a curve will no longer cause those above it to be renumbered downwards to fill the gap. Page 5.3

34 T/HIS User manual Version 15.0, May 2018 5.0.3 Curve Operations The functions available fall into four distinct groups, Separate functions involving two groups of curves, where the result is of the form: 1) = [OP] Separate functions involving only one group of curves, where the result is of the form: 2) = [OP] Single output from only one group of curves, where the result is of the form: 3) = [OP] Separate functions involving three groups of curves, where the result is of the form: 4) = [OP] [OP] Currently the only function that has 3 curves groups as input is the VEC operation 1) Separate Functions On Two Groups two These functions display a menu in which groups of curves may be selected, (see right). You must define one or more curves in group #1, and group #2 must be: either A group of as many curves as there are in group #1. or A single curve. Every curve in group #1 is applied to this curve. A constant value, entered in the Key in : or text box. You can pick curves in either group from their box. menus, or type a range into the Key in: the order in which they are processed NOTE : is ascending sequential, not the order in which you define them . Page 5.4

35 T/HIS User manual Version 15.0, May 2018 2) Separate Functions On A Single Group These functions display a menu in which one group of curves may be selected, (see right). Operations apply separately and uniquely to each selected curve. As before, the order of processing is ascending sequential, not the order in which you define them. 3) Single Output From A Single Group These functions require a single group of curves as input like the functions above. The output is a single curve. Page 5.5

36 T/HIS User manual Version 15.0, May 2018 5.1 READ Options T/HIS can data from a number of sources including LS-DYNA binary output files, LS-DYNA ASCII files and READ tabulated x/y data files. In addition this menu allows data for new curves to be entered directly using the keyboard. 5.1.1 LS-DYNA Users are strongly advised to run each LS-DYNA analysis in a separate directory. Some of the default names for the files generated by LS-DYNA that T/HIS can read are not unique and T/HIS can not tell which files belong to which model. If you do read multiple models from the same directory T/HIS will generate a warning message if you read the same file for more than 1 model. 5.1.1.1 Selecting Models There are three ways to select the LS-DYNA models that you want to read into T/HIS S (i) Select a single model (see i o n 5 . 1 . 1 . 1 . 1 ) c e t (ii) Search directories for results and open open e c t i o n 5 . 1 . 1 . 1 . 2 ) multiple models (see S (iii)Open a model database and select the models . c t i o n 5 . 1 e 1 . 1 . 3 ) you want to read ( see S Page 5.6

37 User manual Version 15.0, May 2018 T/HIS 5.1.1.1.1 Select Model Select ANY results file from a model. T/HIS will then search for all the results files in that directory produced by the same analysis as the selected file (as illustrated on the right) and display a list of all the files found. The user can then select which files to open. The default is to open all the available results files. If you are using the Oasys Ltd. SHELL to submit jobs then the default filenames will be "jobname.thf", "jobname.xtf", "binout", "abstat" etc. If you use the standard LSTC output file names then the filenames will be "d3thdt", "xtfile", "binout", "abstat". The T/HIS preference option "this*file_names" can be used to set the default filenames that T/HIS searches for to either the ARUP set or the LSTC names. When the user selects Apply the selected file are then opened and the contents scanned. After the files have been scanned the list of available data i e e c t S o n e s types will automatically be displayed ( 1 . 1 . 5 ) 5 . Page 5.7

38 User manual Version 15.0, May 2018 T/HIS 5.1.1.1.2 Search Directories Recursively Multiple models can be opened by using the option to search directories recursively. After a directory has been specified T/HIS will display a list of all the models it can find in the directory structure and each file can be selected. The order in which the models are read in can be specified by selecting the models in the order required. The selection buttons will display the model number that each model will be read into. The model numbering begins from the next free model number and is then sequential. Page 5.8

39 User manual Version 15.0, May 2018 T/HIS 5.1.1.1.3 Select Models From Database From version 10.0 onwards T/HIS can select models from a model database. The database file is an XML format file that contains information on where models are located along with a brief description of each model, l (see w for more details on the file format) b e o To select a model database either enter it’s name in the text box or use the file selector. e c t i o n 1 . 3 for more details). The The default model database can be specified as a command line argument (see s H p e n d i x p for more details) default database filename and location can also be specified in the preference file (see A this*database_dir: this*database_file: Page 5.9

40 T/HIS User manual Version 15.0, May 2018 After a database file has been selected it’s contents will be read and T/HIS will display a Tree Like menu showing the contents of the database. As each item is displayed T/HIS will check to see if the files that it refers to exist. If a file does exist then a green tick will be displayed If a file does not exist then a red cross will be displayed The number of levels in the database that are automatically expanded when it is first displayed can be specified in the preference p p e n d i x H for more file (see A details) this*database_expand: After selecting the required models Apply to close the database use window and return to the main menu where the selected models will be displayed along with the model numbers they will be read in as. Page 5.10

41 User manual Version 15.0, May 2018 T/HIS Selecting Models Models can be selected and deselected by clicking on each row. Multiple model can be selected by clicking on the 1st model and holding down SHIFT while selecting the last model in the range. As each model is selected the model number than it will be read in as is automatically displayed alongside the model description. A complete branch can be selected/deselected by selecting the branch label (Iteration 1). Modifying the Database Database entries can be added, removed and modified by right clicking on a branch label or a model description Right clicking on a branch label will display 4 options Modify Modify the branch label. ... Add Add a new model into the selected branch. Model ... A menu will be displayed to select a new model and to define the model description that is displayed for the new model. Insert Insert a new branch within the selected branch. ... Delete Delete this branch and everything within it. Page 5.11

42 T/HIS User manual Version 15.0, May 2018 Right clicking on a model description will display 3 options Modify the model location Modify and description. ... Insert a new branch. Insert ... The selected model will be moved into the new branch. Delete the model Delete Saving the Database After modifying the database use the Save option to save the changes for future sessions. Creating a new Database If you do not have a database or if you want to create a new one then T/HIS can create the new database for you. To create a new database click the CREATE button and simply enter the name of the new database file in the text box that appears, T/HIS will then check that the file does not already exist and if it doesn’t it will create a new empty database. Alternatively if you type in the name of a file in the main Open Plot File window that does not exist then T/HIS will ask if you want to create a new empty database using that filename. o d i f y options above to add items into the database and then save the file Once you have done this you can use the M before exiting. Database Format The Model Database uses an ASCII XML file format. All items with the database are either branches or models. Each database entry has an XML name and a LABEL element. Models also contain a model element that contains the full pathname of one of the files belonging to the model. The XML name should be unique and should obey the following rules • Names can contain letters, numbers, and other characters • Names must not start with a number or punctuation character • Names must not start with the letters xml (or XML, or Xml, etc) Names cannot contain space • The LABEL is the string used to display an item within the tree view. Unlike the XML name the LABEL can contain any ASCII character. Page 5.12

43 User manual Version 15.0, May 2018 T/HIS 5.1.1.2 Automatic extraction of model results When a second or subsequent model is opened in T/HIS this option can be used to automatically generate the same curves as those already read from another model. This option can also be used if a model is re-read into T/HIS to extract the same curves as those that had already been read from the model. By default this option will attempt to generate curves that match those already read from model 1. If results have already been read from more than one model then the model to match the curves form can be set to any of the existing models. This option can be used to overwrite the existing curves from a model. If a model has been read into T/HIS and curves have been read from the model while the analysis was still running then this option can be used to automatically update the curves. Page 5.13

44 T/HIS User manual Version 15.0, May 2018 When the curves from the 2nd or subsequent model are automatically generated then by default they will be given the same colours, and line styles as the curves in the original model. Instead of copying the curve styles a new style for all the automatically generated curves can be specified. This make it very easy to set the same style for all of the curves that are read from a model. Alternatively the default T/HIS curve styles can be used. 5.1.1.3 Model Unit System This option can be used to set the default Unit System that will be applied to the model. For e c t i o n 5 . 2 2 more information on Units see S 5.1.1.4 Entity Types Items are shown in bright green if they occur in all the models that have been read into T/HIS and are currently selected. If they occur in at least one model but not all models then they are shown in a duller green (in the case shown in the adjacent picture Beams and Joints can be found in some but not all of the models). Page 5.14

45 User manual Version 15.0, May 2018 T/HIS 5.1.1.5 Data Components When reading data from any of the LS-DYNA binary files or the LS-DYNA ASCII files multiple components and entities may be selected at the same time. Each data extraction menu consists of a list of available data components and a list of entities. Data Components Individual data components can be selected using the mouse. If a component has been selected and a second item is subsequently selected the first item will be deselected. Multiple components may be selected by CTRL key when 1. Holding down the selecting items to add individual items to the list of selected components. 2. SHIFT key when Holding down the selecting items to add a range of items to the list of selected components. 3. Clicking on the first item to be selected and then dragging down the list of items without letting go of the mouse button. Page 5.15

46 T/HIS User manual Version 15.0, May 2018 5.1.1.6 Entities Individual entities can be selected/deselected using the mouse. Multiple entities may be selected by Holding down the key when selecting items to add them CTRL 1. to the list of selected entities. key when selecting items to add a 2. Holding down the SHIFT range of items to the list of selected entities. Clicking on the first item to be selected and then dragging 3. down the list of items without letting go of the mouse button. Entities can be sorted in four ways: Sort by model will list all entities in the lowest number model in order of ascending ID number, then all entities in the next-lowest model, and then move through the rest of the models in ascending order. Sort by ID will list all entities in ascending order showing the model ID for each entity Common IDs will list only the entities with IDs that are common to all models without showing the model ID’s arranges the entities in alphabetical Sort by Name order based on their names. Page 5.16

47 User manual Version 15.0, May 2018 T/HIS 5.1.1.7 Surfaces/Integration Points Some BEAM, SHELL, and THICKSHELL data components can be read from multiple integration points. If a data component is available for multiple integration points then an additional Select options is displayed. Surface Select Surface This option will display a separate menu listing all of the integration points that are available to read data from. For Shell and Thick Shell elements the menu will include all of the through thickness integration points plus 3 additional options; TOP, MIDDLE and BOTTOM. For Beam elements the menu will just display the integration points. In plane int points In addition to the through thickness integration points recent versions of LS-DYNA can also output data for multiple in-plane integration points for fully integrated Shell and Thick Shell elements. If T/HIS can identify that the model contains data for multiple in-plane integration points then these options can be used to select the individual in-plane integration points or to average the 4 in-plane points. For more information on selecting integration points for beams, shells and thick shells see . 6 , A . 7 and A . 8 A Sections Page 5.17

48 T/HIS User manual Version 15.0, May 2018 5.1.1.8 Shell and ThickShell Data Components If Shell and ThickShell data is being read from the LDSA (binout) file then the file can contain data components in both the ELOUT and ELOUTDET branches. By default T/HIS uses the data from ELOUTDET as ELOUT only contains a subset of the data in ELOUDET. In some versions of LS-DYNA it is possible to change the Shell and ThickShell data components written to the ELOUT so that they are defined using the global coordinate system (see EOCS on *CONTROL_OUTPUT) instead of the default element local coordinate system. If this option is used then only the ELOUT file is modified, the ELOUDET file is still written using the local coordinate system. Use ELOUT instead of ELOUTDET If T/HIS detects that the LSDA file contains both ELOUT and ELOUDET and that they are using different coordinate systems then this option can be used to force T/HIS to use the ELOUT file data components using the global coordinate system. This option can also be set via the preference p p e n d i x file (see for more details) and via H A . 3 ) 1 the command line (see Section Page 5.18

49 User manual Version 15.0, May 2018 T/HIS 5.1.2 GROUPS This option can be used to read a file containing PART group definitions. If a model is read in which contains PART information then the PART groups can be used to read in and sum energies for a group of PARTS in one go. The 1st time T/HIS finds a group file ( groupXXX.asc ) in a directory it will automatically read the file and create the PART groups. After reading the 1st group file T/HIS will by default ignore any other group files it finds in directories when it opens a model. This option can be changed as follows. Ignore This option (the default) will make T/HIS ignore any more group files it finds If T/HIS finds a group file Delete when a new model is read in then all existing group definitions will be deleted before the new file is read If T/HIS finds a group file Overwrite when a new model is read in then all the new group definitions will be added to the existing ones. If the new file contains a group with the same ID as an existing group then the old definition will be overwritten. Increment If T/HIS finds a group file when a new model is read in then all the new group definitions will be added to the existing ones but the group ID’s will be incremented to ensure that they do not clash with existing ones. The default option can be changed using the preference option this*read_group_files: p p e n d i x H for more details) A (see If the option to read groups files is set and the directory contains more than one group file then T/HIS will use the newest file. Page 5.19

50 T/HIS User manual Version 15.0, May 2018 5.1.3 T/HIS Curve This option can be used to read in curves stored p e n d i x B for p in T/HIS curve file format (see A more details) By default this option can be used to select a single file. After selecting the file it will automatically be opened and read and all of the curves in the file will be read in. In addition to reading a single file this option can also be used to search directories recursively for multiple files. After the search has finished a list showing all of the files that have been found will be displayed so that multiple files can be selected and read in one operation. By default T/HIS will search for files with the file extension .cur, this can be changed if required. In addition to changing the default file extension the list of files can also be filtered. The filter string can contain the following wildcards * matches multiple characters matches a single character ? Note : The filtering ignores case. Page 5.20

51 User manual Version 15.0, May 2018 T/HIS 5.1.4 KEYWORD Read data into T/HIS from an LS-DYNA KEYWORD input file. All X,/Y data defined *DEFINE_CURVE using will be read in from the specified input file. Any X and Y axis scaling or *DEFINE_CURVE offsets defined within the definition will be applied to the X,Y as it is read in. If the option has been used the the _TITLE title will be used as the curve label otherwise the curve ID number will be used. From version 9.3 onwards this option will also *INCLUDE process any files specified using the option. /re kw read all curves from "filename" KEYWORD input file "filename" 5.1.5 BULK Read data into T/HIS from a Bulk Data file. The format of a Bulk Data file is described in e n d i x p . C p A read all curves from Bulk /re bd "filename" Data file "filename" KEYBOARD 5.1.6 Key in curve information directly. A dialogue window is displayed upon requesting this option where the user will be prompted for title, x and y axis labels, a curve identifier and then a series of points. Once all the points required have been entered carriage return should be pressed. The user will then be prompted for the curve or file in which to store this data : # means use the next free curve. Page 5.21

52 T/HIS User manual Version 15.0, May 2018 5.1.7 CSV menu (see right) can be used to CSV The specify the name of a comma separated variable file to read into T/HIS. The file may contain up to 1000 columns of data (separated by commas). The maximum line length supported by this option is 10240 characters. CSV files written from the D3PLOT Write Menu are automatically detected by T/HIS and sets the appropriate read options. The options can be changed, but the data may not read in as expected. Both the Write->Entity and Write->Scan formats are supported. The first column of data containing the entity IDs is ignored for both formats. For files written from the Write->Scan menu the third column is ignored as this also contains entity IDs. File Format This option can be used to change the CSV file format between the X,Y,X,Y,X,Y format where alternate columns are the X and Y values for each curve and the X,Y,Y,Y format where there is a single column containing the x-axis values for all the curves. Field Separator By default T/HIS assumes that the columns of data are separated by commas, this option can be used to change the field separator to either a Tab or Spaces. If the ’Space’ option is used then multiple spaces are counted as a single field separator. If curve or axis labels are defined in the file and they contain spaces then they need to be enclosed in pairs of " quotes. A The default field separator can specified in the preference file (see H d p x e for p n i more details) this*csv_separator: This option can be used to specify a column within the file that contains the X-axis Read X Values data values that should be used for all of the other columns of data. Generate X Values This option can be used to automatically generate the X-axis values if none of the columns within the file contain the data. Read Labels This option can be used to specify a row within the file that contains labels for each of the columns of data that can be used as the curve labels within T/HIS. Page 5.22

53 User manual Version 15.0, May 2018 T/HIS Generate Labels This option can be used to automatically generate labels for each set of data. A single string can be specified which will then have the column number appended to it to generate unique labels. This option can be used to specify a row within the file that contains the axis labels. Read Axis Labels SCREEN 5.1.8 The SCREEN menu (see right) can be used to interactively create a curve T/HIS by selecting points using the mouse. This option will start point selection process. Once you have started creating a curve Start Curve all the other T/HIS menus will be disabled until you end the point selection using or Quit Curve options. either the End Curve Dynamic viewing will still be available. This option will end the current curve creation and save the curve. End Curve Quit Curve This option will end the current curve creation without saving the curve. This option can be used delete the last point created (the middle mouse button will Undo Last also delete the last point). Page 5.23

54 T/HIS User manual Version 15.0, May 2018 5.1.9 ISO This option can be used to read in curves from files written using the ISO/TS 13499:2003 file format. The default option in T/HIS is to read in an Index file containing information on multiple channels. After the file has been opened and read a list of all the available channels will be displayed so the required channels can be selected. When listing the channels the default is to display the filenames for each of the channel files. Alternatively the channel names (read from the Index) file can be displayed. Instead of reading an Index file and then selecting which channels to read individual channel file can be read in directly. Page 5.24

55 User manual Version 15.0, May 2018 T/HIS 5.1.10 LS-PREPOST This option can be used to read in curves from files written out from LS-PREPOST. Two different file formats are supported LS-PREPOST Curve Files LS-PREPOST XY Pairs 5.1.11 DIAdem This option can be used to read in data from DIAdem format data files. After selecting a DIAdem header file a list of all the available channels will be displayed so the required channels can be selected. Version 11.0 of T/HIS supports the following DIAdem data file formats REAL32 REAL48 REAL64 INT16 INT32 WORD8 WORD32 ASCII The MSREAL32, TWOC12 and TWOC16 are not supported. By default T/HIS will display the channel comments (header block 201) for each channel. This can be changed to the channel names (header block 200) using the popup menu if required. When channels are read in this option is also used to create the labels for each curve. Page 5.25

56 T/HIS User manual Version 15.0, May 2018 As well as displaying either the channel comments or the channels names the list of channels can also be filtered if required . The filter string can contain the following wildcards matches multiple characters * ? matches a single character Note : The filtering ignores case. Normally one of the DIAdem data channels contains the x-axis (time) values. By default T/HIS assumes this is channel 1 but this can be changed using the button labelled ... If none of the channels contain the x-axis values then a start value and an increment can be specified to generate curves with evenly spaced x-axis values. 5.1.11.1 Supported DIAdem header file blocks The following DIAdem header file data blocks are supported. All other data blocks are ignored. GLOBAL HEADER Value for NoValues in the data file 111 112 Interchange high- and low-bytes CHANNEL HEADER 200 Channel name Channel comment 201 210 Channel type 211 File from which channel data is read Method of storing the data 213 214 Data type 220 No. of values in the channel Pointer to the 1st value in the channel 221 Offset for ASCII block files 222 Offset for binary block files with header 223 Local ASCII-pointer in the case of ASCII block files Separator character for ASCII-block files 230 231 Decimal character in ASCII-files 232 Exponential character in ASCII-files 240 Exponential character in ASCII-files 241 Step width / Factor 252 Keyword for NoValues in the channel Value for NoValues in the channel 254 Page 5.26

57 User manual Version 15.0, May 2018 T/HIS 5.1.12 NASTRAN This option can be used to read in data from from NASTRAN PCH files. Currently the following types and data components are supported along with the SORT1, SORT2 and XYPUNCH file formats Displacements Nodal Nodal Velocities Accelerations Nodal SPC Forces Nodal Element Forces CBUSH CDAMP Element Forces CELEM Element Forces CBAR Element Forces CQUAD Element Forces CTRI Element Forces By default T/HIS will read in every curve that is finds in the file so if you read in a file containing nodal displacements from a SORT2 format file you will end up with 12 curves being produced in T/HIS for each node. X,Y,Z translation (Real) / (Magnitude) X,Y,Z translation (Imaginary) / (Phase angle) X,Y,Z rotational (Real) / (Magnitude) X,Y,Z rotational (Imaginary) / (Phase angle) Page 5.27

58 T/HIS User manual Version 15.0, May 2018 The Options... button will display the following menu that will allow some components to be deselected before reading the file. Complex For complex data components written out as a pair of real and imaginary numbers or as a magnitude and phase angle either of the components can be deselected. Data Nodal Data For nodal data any of the 4 data types can be deselected along with any of the 6 translational/rotational directions. For element forces each individual element type can be deselected. Element Forces Page 5.28

59 T/HIS User manual Version 15.0, May 2018 T/HIS will automatically create curve labels for each curve generated from the PCH file. The entity types, ID’s and e c t i o n 5 . 3 components will also be stored with the curves to allow the curves to be sorted using the curve table (see 4 ) . S CURVOUT 5.1.13 This option can be used to read in data from from a CURVOUT ASCII file (curves defined by *DEFINE_CURVE_FUNCTION). All the curves defined in the file are read. Page 5.29

60 T/HIS User manual Version 15.0, May 2018 5.2 WRITE Options Writes a group of curves out to a file for later use or to the screen. WRITE TO FILE 5.2.1 Writes a group of curves out to a file for later use if required. The user is prompted for the list of curves to write out after a filename has been specified. 5.2.1.1 FILE FORMAT Writes a group of curves out to a file for later use if required. The user is prompted for the list of curves to write out after a filename has been specified. This option will write out curves using the default T/HIS curve format. One T/HIS .cur format curve file will be written containing all the selected curves along with their Titles, Axis Labels, Line Labels and styles. From version 9.4 onwards the curve file can also contain information on the UNIT system and the X and Y axis units p p e n d i x B for more details on the curve file format) for each curve (see A LS-DYNA Keyword One file will be written containing all the selected curves using the LS-DYNA *DEFINE_CURVE format so that the file is suitable for inclusion in a LS-DYNA keyword file. NASTRAN D1 This option will write out curves using the NASTRAN TABLE D1 format. Curves are listed sequentially in the file. This option will write out curves using as a CSV (comma separated variable) CSV X,Y,X,Y,X,Y file that can be read into other programs like Microsoft EXCEL. The columns written are x-values for the 1st selected curve, y-values for the 1st selected curve, x-values for the 2nd selected curve, y-values for the 2nd selected curve ... Page 5.30

61 User manual Version 15.0, May 2018 T/HIS CSV This option X,Y,Y,Y,Y,Y also writes out a CSV file. All the curves are output using a single consistent set of X values that can either be taken from one of the curves or they can be generated automatically. Summary Gives a summary of the curve. This includes the type of data being plotted and the maximum and minimum values in the curve. Summary (CSV) CSV (comma separated variable) vesrion of the summary file. From version 9.4 onwards the CSV files generated by T/HIS can also contain information on the UNIT system and the X and Y axis units for each curve. If you don’t want to output this information then you can turn it off. The default setting for this option can be set via the preference option this*write_csv_units: This option can also be turned on and off in FAST-TCF scripts (see section 7.XX) 5.2.2 WRITE TO SCREEN Writes data to a text window on the screen. 5.2.2.1 OUTPUT FORMAT LIST This option will write out all the points in the selected curves. Gives a summary of the curve. This includes the type of data being plotted Summary and the maximum and minimum values in the curve. Scans a group of curves and reports the maxima and minima values for each SCAN individual curve along with the overall maxima and minima Page 5.31

62 T/HIS User manual Version 15.0, May 2018 5.3 Curve Manager In screen menu mode curves are managed window, CURVE MANAGER using the shown in the figure (right). By default the CURVE MANAGER menu only displays 1000 curves. An unlimited amount of curves can be used and these are displayed in the menu in blocks of 1000. If an attempt is made to use a curve higher than 1000 then the Range options are used to select which group of 1000 curves you wish to display. Against each curve that currently contains information is a curve number button. The colour of this button indicates the current blanking status of a curve The curve is unblanked in all fffffff active graphs ( s e c t i o n 3 . 5 ) s e e The curve is blanked in all active graphs The curve is unblanked in some active graphs The blanking status of each curve can be changed by clicking on this button. The r v e T a b l e can also be used to change u C the blanking status of a curve. A range of curves may either be blanked or unblanked by selecting the first button in the range and then holding down the SHIFT key while selecting the last button in the range. All buttons that lie between the first and last buttons selected will have their status changed to match that of the first button that was selected. The line label for each curve may be changed by over-typing the label currently displayed in the line label box. The button located between the curve number button and the curve label shows the current colour, line style and symbol that will be used to plot the curve. These properties can be modified by clicking on this button to display the line style menu, e c t i o n 5 . 6 . see S The window can CURVE CONTROL also be accessed via the File...Curves option at the top of the graphics window button in the main or from the Curves menu. Page 5.32

63 T/HIS User manual Version 15.0, May 2018 If the curve labels are too long to be seen in the standard Curve Manager menu then the menu can be turned into a floating menu by selecting the <<>>Dock. selecting Page 5.33

64 T/HIS User manual Version 15.0, May 2018 5.3.1 Reordering Curves Attached to each of the curve number buttons is a popup menu that can be used to reorder curves by copying and moving them. This menu is accessed by clicking the right mouse button over the curve number buttons. INSERT CURVE BEFORE Inserts the last curve copies to a scratch definition before the selected curve. INSERT CURVE AFTER Inserts the last curve copies to a scratch definition after the selected curve. COPY CURVE Copies the curve to a scratch definition. Copies the curve along with is line style settings to a scratch definition. COPY CURVE + STYLE MOVE CURVE Copies the curve to a scratch definition and then deletes the original curve MOVE CURVE + STYLE Copies the curve along with is line style settings to a scratch definition and then deletes the original curve DELETE CURVE Deletes the selected curve 5.3.2 Blank... Blank All Blank all curves Unblank All Unblank all curves Pick Visible Pick curves from the screen to be blanked. Reverse All Reverse the blanking status of all curves Blank by Model... Blank curves belonging to a Model Unblank by Model... Unblank curves belonging to a Model Blank curves by Curve Group Blank by Group... Unblank curves by Curve Group Unblank by Group... Page 5.34

65 User manual Version 15.0, May 2018 T/HIS 5.3.3 Delete... Delete All Select a groups of curves for deletion Deletes all current curves. You are prompted for confirmation first! Curves... Delete by Model... Delete curves belonging to a Model Delete by Group... Delete curves by Curve Group All Blanked Delete all the curves that are currently blanked All Visible Delete all the curves that are currently unblanked 5.3.4 Table The Table option can be used to give more control over which curves are blanked and unblanked in all of the currently defined graphs. By default the Curve Table displays a scrolling list of all of the currently defined curves and curve groups along with a set of tick boxes that display the status of the curve in the current graphs. Curves are displayed in BLUE text while curve groups are displayed in GREEN. Page 5.35

66 T/HIS User manual Version 15.0, May 2018 For each curve the following information is displayed by default. ID Curve ID or Group ID for curve groups Label Curve Label or Group Name If the curve has been read in from a model then this will be the directory that all all the model files are Directory in, if the curve had been read in from a file (.cur. .csv) then this will be the file location. No information is displayed for curve groups. Model/File If the curve has been read in from a model then by default this will be the ID of the model. If the curve had been read in from a file then this will be the filename. No information is displayed for curve groups. The entity type that the curve was generated from. If the curve was read in from a file then this will Type display "FILE". ID of the item that the data was read from. If the curve was read from a file then this will be the index Entity ID within the file for each curve. If the row represents more than one curve (e.g. curve groups) and the curves have different components then it will display ’*’ Component Data component name. If the row represents more than one curve (e.g. curve groups) and the curves have different components then it will display ’*’ Style This will show the line colour, style and width used to display the curve. The column widths can be adjusted by clicking on the bars between the header columns and the order of the columns can be changed by dragging the column headers. The table contents can also be sorted by any column by clicking on the header button for the column. Clicking on the same header a 2nd time reverses the sort order for the column. 5.3.4.1 Adding / Removing Curves from graphs To add an individual curve (or curve group) to a graph the tick boxes on the right hand side of the curve table can be used. The first column of tick boxes (under the *) can be used to add/remove a curve from all the currently defined graphs, while the top row of tick boxes can be used to add/remove all the currently defined curves from a graph. • If all of the curves are unblanked in a graph then the tick box will display a black tick in a white box. If some of the curves are unblanked in a graph then the tick box will display a dark grey tick • in a grey box. • If none of the curves in a group are unblanked in a graph then the tick box will be empty. Multiple tick boxes can be set/unset by clicking on the first 1 and then using pressing shift which clicking on the last one. Page 5.36

67 User manual Version 15.0, May 2018 T/HIS Individual curves can also be selected by clicking on them in the main part of the curve table. Multiple curves can be selected using either CTRL to select a single curve or SHIFT to select a range of curves. As curves are selected they are highlighted in blue and the tick boxes for any unselected curves are greyed out. When multiple curves have been selected then clicking on a tick box sets the status for all the selected curves. As well as blanking and unblanking curves in graphs a number of other options can be applied to selected curves by right clicking on them. 5.3.4.2 View Options The viewing options popup can be used to control which columns of data are displayed and what items are displayed in the curve table. By default all 8 columns of information will be displayed, each column can be turned on and off but T/HIS will ensure that at least one column is always displayed. The columns that are initially displayed can be specified in the preference file (see A p e n d i x H p for more details). If the columns Save to Pref are changed then can be used to update the preference file. Page 5.37

68 T/HIS User manual Version 15.0, May 2018 Display This option can be used to control how items are displayed in the curve table. All Items By default the curve table will contain one row for each curve and one row for each curve group. Group By Model/File This option will display a single row for all the curves that were read from the same model or file. When this option is selected the columns for curve ID, Label, Type, Entity ID and component display a ’*’ as they represent multiple values. This option can be used to quickly assign all of the curves from a single model or file to the same graph. Group By Common Items This option will display a single row for all the curves that were created using the same entity type, ID and component. In the example opposite the 1st row represents all of the curves that contain a model Kinetic Energy while the 3rd row represents all the curves that contain a displacement magnitude for Node 10000. This option can be used to quickly assign all of the curves for the same entity and component to the same graph when comparing results from multiple models. Page 5.38

69 User manual Version 15.0, May 2018 T/HIS Include By default the curve table contains both curves and curve groups. This option can be used to display either just the curves only or just the curve groups. Show Models By If the column displaying the model ID is displayed in the curve table then by default it will display the model number. This option can be used to display either. The model ID The model directory The name of the THF file A user defined model description 5.3.4.3 Filter Options The filter options can be used to filter the list of curves displayed in the curve table. Multiple filters can be active at the same time Filter By Model This option can be used to filter the list of curves by model number. If curves have been read in from a file then an "Other" option will be shown. In the example opposite only curves that are either from model 1 or model 2 will be displayed. Page 5.39

70 T/HIS User manual Version 15.0, May 2018 Filter By Label This option can be used to filter the list of curves by label. Up to 5 different strings can be entered and the list of curves displayed will be filtered using those strings. If multiple strings are entered then the strings can either be combined using either "AND" or "OR". A separate option can be used to ignore the case so that "model" will match both "Model" and "model" In the example opposite only curves that contain either the word "Model" OR the word "Node" in their labels will be displayed. Filter By Type This option can be used to filter the list of curves by entity type. The list of entity types displayed will automatically update to show the entity types for all the curves that are currently stored in T/HIS. In the example opposite only curves that contain "Model" data are displayed. Filter By Component This option can be used to filter the list of curves by component type. The list of components displayed will automatically update to show the components for all the curves that are currently stored in T/HIS. In the example opposite only curves that are either Model Kinetic Energy or Nodal Displacement Magnitudes are displayed. Include By default the curve table contains both curves and curve groups. This option can be used to display either just the curves only or just the curve groups. 5.3.5 Summary Displays a window from which a group of curves may be chosen. The maximum and minimum values of the selected curves are then displayed. List 5.3.6 Displays a LIST CURVES window, from which a number of curves may be selected. The data point values for the selected curves are then listed in a listing box. Page 5.40

71 User manual Version 15.0, May 2018 T/HIS 5.3.7 Scan Displays a window from which a group of curves may be chosen. The maximum and minimum values of the selected curves are then displayed. CURVE RANGE SELECTION 5.3.8 The range buttons in the Curve Control menu can be used to when you are working with more than 1000 curves to move between groups of 1000 curves. Pressing the green + tab will display the next group of 1000 curves in the menu, whilst pressing the red - tab will display the previous group of 1000 curves. Alternatively pressing the Select button will bring up the following new window. Select the appropriate group of 1000 curves and press apply to display those 1000 curves in the Curve control menu. 5.3.10 CURVE TAGS Curves can be given tags to act as internal identifiers within T/HIS which can be used to reference curves in order to perform operations on them. In order to display the curve tags, toggle on the Show Labels arrow and select Show Tags. The tag names can be defined in the input boxes. When a curve file is written, T/HIS will save the tags of all the tagged curves in the file. When performing operations in the dialogue box, curves can be referenced by their tags. The tag must be placed in double quotes. Page 5.41

72 T/HIS User manual Version 15.0, May 2018 5.4 Model Manager Select 5.4.1 This allows the user to turn models on/off. Deselecting a model will result in removal of its entities as options when reading data. Models can be displayed according to their titles or alternatively by the directories they were read in from. Clicking on the button displaying a model title will produce a menu similar to that illustrated. The number of each type of item in the model and the sources T/HIS found for that item type’s data will be shown. The user can select which file type is preferred for the data for each type of e t t i n g s ). item (see S Prefix This menu can also be used to define a user defined model prefix. This prefix can be added automatically to the start of curve labels to help identify which model they belong to. Page 5.42

73 User manual Version 15.0, May 2018 T/HIS 5.4.2 Re-Read The re-read option can be used to rescan and update the model. This will find any new data written to disk since the file was last read. Delete 5.4.3 This option allows the user to select and delete models from T/HIS. Any curves that have been read in from a model that is deleted are NOT deleted with the model. Any number of models to be deleted from T/HIS. 5.4.4 Convert Binout This option can be used to convert LSDA binout files into the older ASCII files. The menu allows a number of models to be selected. The Select Files button allows the user to specify which ASCII files are to be created. All of the ASCII files are written into the directory containing the LSDA file. Page 5.43

74 T/HIS User manual Version 15.0, May 2018 5.5 EDIT Options This menu allows you to examine and make modifications to the curve data points. You are always working on a "scratch" copy of the curve. The permanent curve is only updated when you SAVE it explicitly. Moving around the curve data is done through the use of scroll bars on the data panel. Save Saves the edited curve as either a new curve or overwrites the original. Restart Resets the curve being edited to the values at the start of the edit session. Quit Quits the curve editor without making any changes to the curve Labels... Allows the title, axis and line label to be e c t i o n 5 . 5 . 3 for more changed (see S details) Replace Allows curve values to be changed by overtyping the x and y values. Insert Before Inserts a new point in the curve before the selected point. Insert After Inserts a new point in the curve after the selected point. Delete Deletes the selected point. text-box allows control by command line (see S e c t i o n 5 . 5 . 2 for more details). The Command Page 5.44

75 T/HIS User manual Version 15.0, May 2018 5.5.1 Interactive Curve Editing After a curve has been selected it is displayed using a thicker line to highlight it in any graphs that it is visible in. As well as being highlighted the curve points can be edited interactively and the Quick Pick menu in the e c t i o n 6 . 1 for more details) is main Tool Bar (see S replaced with the EDIT menu. 5.5.1.1 Modify Page 5.45

76 T/HIS User manual Version 15.0, May 2018 Drag Modify the point nearest to the screen pick by dragging it’s X,Y position in both the X and Y axis directions. Drag a point in the X axis direction only. Drag X Drag a point in the Y axis direction only. Drag Y 5.5.1.2 Insert Between Finds the nearest segment to the point selected on the screen and then projects the point onto the segment. At Cursor Finds the nearest segment to the point selected on the screen and then inserts the a point at the screen location between the 2 ends of the segment. Page 5.46

77 User manual Version 15.0, May 2018 T/HIS Split Segment Finds the nearest segment to the point selected on the screen and then splits the segment in 2 or more parts. Inserts a new point at the screen location before the first point in the curve. At Start Inserts a new point at the screen location after the last point in the curve. At End 5.5.1.3 Delete Finds the nearest point to the screen pick and deletes it. Point To End Finds the nearest point to the screen pick and deletes all points in the curve from that point onwards. From Finds the nearest point to the screen pick and deletes all points in the Start curve up to that point. 5.5.1.4 Locate Finds the nearest point to the screen pick and updates the list of points in the main edit panel so that the points either side of the picked point are displayed. 5.5.1.5 Restart Resets the curve being edited to the values at the start of the edit session. 5.5.1.6 Save (Overwrite) Overwrite the original curve with the edited one. 5.5.1.7 Save (Highest used + 1) Save the edited curve as a new curve without overwriting the original curve. Page 5.47

78 T/HIS User manual Version 15.0, May 2018 5.5.1.8 Quit Quits the curve editor without making any changes to the curve. 5.5.2 Command line mode In command line mode editing of curves is done in a similar fashion using the following commands. Moving around the curve: F Move forward 16 lines Forward Move back 16 lines Back B Top T Move to the top of the curve E End Move to the end of the curve N Move to given line number Number Change Modifying the curve: Cn Change line n Insert points before line n Insert In Append Append points after line n An Delete lines n1 to n2 D n1 n2 Delete Change the line label Label L Reset Reset the curve back to the original R curve Write the curve Saving and Plotting the curve: W Write As write Save S Plot the edited curve PE Plot Edited Plot the edited and original curve PA Plot All Plot Plot the current T/HIS curves PL Quit the editor Q Quit /ED In command line mode the EDIT menu is reached by typing Page 5.48

79 User manual Version 15.0, May 2018 T/HIS 5.5.3 Curve Labels Each curve has four labels associated with it: Title The title string at the top of the plot X label The label for the X axis of the plot Y label The label for the Y axis of the plot Label The label applied to the line itself n The first three are only used on a plot if this curve is the first (or only) curve to be plotted, and the relevant labels are i I T L E a n d A X I S ). "automatic" mode (see T You can change any of these by simply overtyping whatever is currently there. When you are happy with the result use APPLY the button to dismiss this box, saving the new values. The labels here are scratch values, current only in this editor, the permanent curve labels are only overwritten with them if you this edited curve. SAVE RESET will restore the scratch labels to the original values of the permanent curve being edited. The title, axis and line labels can also be modified using the d l o g u e b o x i a Page 5.49

80 T/HIS User manual Version 15.0, May 2018 5.6 LINE STYLES menu is shown in the LINE STYLE The figure (right). This menu can be used to change the colour, width, style and symbol for any of the curves that are currently being used. When a curve file is written, T/HIS will save the line style for each curve in the file. The lower half of this panel contains a list of all the curves that are currently being used. By default the curve that was clicked on in menu will be the CURVE CONTROL highlighted and the colour and symbol buttons in the top section of the menu will show the setting for that curve. SAVE... The button can be used to save the current set of line styles to a file while the button can be used to reload a RELOAD... set from a previously saved file. The button will reset all the curve DEFAULT styles to the original T/HIS settings. If you wish to modify the colour/style of more than one curve at a time additional curves may be selected by pressing the button next to each curve number that depicts the current line style. SELECT_ALL and DESELECT_ALL may be used to select/deselect all the curves. Line Styles can also be edited using the a l o g u e b o x d i APPLY 5.6.1 This button will APPLY the current line colour, symbol, width and style selection to all the curves that have been selected. Page 5.50

81 User manual Version 15.0, May 2018 T/HIS 5.6.2 COLOUR Pressing the right mouse button while over the colour button will invoke a colour popup menu. T/HIS has a built in palette of 30 predefined colours and 6 user defined colours. Colours are defined using 6 digit Hexadecimal values using the format RRGGBB. Red Component (0-255) RR Green Component (0-255) GG Blue Component (0-255) BB Value Colour ID Name Alternative Name WHITE 1 FFFFFF COL_1 FF0000 COL_2 2 RED 3 COL_3 GREEN 00FF00 4 COL_4 BLUE 0000FF 5 CYAN 00FFFF COL_5 FF00FF MAGENTA COL_6 6 COL_7 YELLOW FFFF00 7 FF9C00 8 COL_8 ORANGE 21FF94 COL_9 9 TURQUOISE 7B00FF INDIGO COL_10 10 COL_11 LIME 11 BDFF39 12 SKY 39BDFF COL_12 13 COL_13 PINK FF7B7B 000000 BLACK COL_14 14 15 COL_15 PALE_YELLOW FFFF9C GOLD 16 COL_16 FFCE00 7B7B00 OLIVE 17 COL_17 9C3163 COL_18 18 DARK_MAGENTA 9CCE00 MEDIUM_GREEN 19 COL_19 MEDIUM_BLUE 7B7BFF 20 COL_20 HOT_PINK COL_21 21 FF9CCE FFCE9C LIGHT_PINK COL_22 22 COL_23 SEA_GREEN 23 317B63 24 MAROON 7B0000 COL_24 25 COL_25 DARK_GREEN 007B00 7B007B PURPLE COL_26 26 27 COL_27 NAVY 00007B DARK_GREY 28 COL_28 393939 7B7B7B MEDIUM_GREY 29 COL_29 BDBDBD COL_30 30 LIGHT_GREY - USER_1 31 COL_31 USER_2 - 32 COL_32 USER_3 COL_33 33 - - 34 COL_34 USER_4 COL_35 USER_5 - 35 36 COL_36 USER_6 - and Background can be selected to change the colour to the Foreground As well as the 36 colour options Background colours defined in the D i s p l a y menu. Foreground and is selected then the Apply button will have no effect on the colour of the currently selected curves.. N/C If Page 5.51

82 T/HIS User manual Version 15.0, May 2018 5.6.3 SYMBOL Pressing the right mouse button while over the button will invoke a Symbol th symbol popup menu that allow any of the 9 T/HIS symbols to be selected (the 9 is a blank symbol that can be selected so that a curve can be plotted without a symbol). As well as the 9 symbols the menu also contains a "No Change" option. The Symbols Frequency controls how often a symbol is drawn on a curve. By i s p l a y menu. default, symbols are not drawn; they can be switched on using the D WIDTH 5.6.4 Pressing the right mouse button while over the width button will invoke a popup menu that allows 4 different line widths to be selected or "No Change". Page 5.52

83 User manual Version 15.0, May 2018 T/HIS 5.6.5 STYLE ressing the right mouse button while over the style button will invoke a popup rd menu that allows 8 different line styles to be selected (the 3 is actually a blank line that can be selected so that a curve can be plotted without a line). As well as the 8 line styles the menu also contains a "No Change" option. CURVE PALETTE 5.6.6 By default T/HIS uses 6 colours (White, Red, Green, Blue, Cyan and Magenta) for any curves that have not had a colour explicitly defined for them. Curves 1,7,13... will be White, 2,8,14... will be Red. This option can be used to change the default number of colours T/HIS uses. Default Use the default 6 colours Use the first 13 colours Extended No Grey Use all 30 predefined colours except the 3 grey ones Full Use all 30 predefined colours plus any user defined ones. The default value for the curve palette can also be specified in the p p e n d i x H for more details). "preferences" file (see A MODIFYING LABELS 5.6.7 Multiple curve labels may be edited using the Search and Replace option to enter the string to search for and the string $ ^ can be used to append to the end of a can be used to insert text at the beginning of a label while to replace it with label. The table below shows the effect of 2 search and replace examples. Example 1 Example 2 Displacement N1034 Original Label Time $ N1 Search String (s) Replace String Node 1 Time(s) Modified Label Displacement Node 1034 GO button will initiate the search and replace on all the curves that are currently selected (highlighted in the The button can be used to reset the labels to what they were before the search bottom half of the menu), while the UNDO and replace. Page 5.53

84 T/HIS User manual Version 15.0, May 2018 Pressing the right mouse button while over the Line Label button will invoke a popup menu that allows the label that is , Line Label being modified to be swapped between the X-Axis Label Y-Axis Label . and the i a l o g u e b o x Line labels can also be modified by using the d SELECTING 5.6.8 CURVES By default the Style menu will display a list of all the current defined curves so that the style for individual curves can be Instead of displaying individual curves the style menu can be changed to display a list of any currently defined curve groups. If curve groups are selected then the style will be applied to all of the curves in the curve group. The style menu can also display a list of all the models currently loaded in T/HIS. If models are selected then the style will be applied to any curve that was created using data from the model. Page 5.54

85 User manual Version 15.0, May 2018 T/HIS 5.6.9 LINE STYLE EDITING IN THE DIALOGUE BOX The dialogue box can be used to edit curve styles To access this feature, enter the command /style at the Command prompt Enter M at the STYLE > command prompt for a list of all available dialogue box commands The following commands are available: S T E D R E A T R W I E A F L T E D U X F I M G SET This option allows the user to set the style properties for individual curves. Enter the curve number (e.g #1 for curve 1) at the Select Curve? command prompt. T/HIS will prompt the user to input the desired style properties in the order: Colour; Enter the colour for the line Line Width; Enter the desired line width for the line Line Style; Enter the desired line style (e.g. dashed) for the line Symbol Type; Enter the desired Symbol Type Symbol Frequency; Enter the desired frequency of the symbols in the format READ This option allows the user to read a style file containing style information and apply that style to a particular curve Enter the name of the style file at the Style File? command prompt. WRITE This option allows the user to write a style file containing style information. DEFAULT This option allows the user to reset all the curve styles to the default settings. Page 5.55

86 T/HIS User manual Version 15.0, May 2018 FIX OFF This is an / switch which resets the curve styles when they are plotted on the screen so that the curves cycle ON through the default T/HIS colours and styles as they are plotted. This will result in the first curve being plotted always . OFF being white, the second red, the third green, etc regardless of their curve numbers. The default is GM This option will display the Global Menu in a separate window LABEL AND TITLE EDITING IN 5.6.10 THE DIALOGUE BOX The dialogue box can be used to edit curve labels, x-axis and y-axis labels and curve titles To access this feature, enter the command /cur at the Command prompt Enter M at the CURVE > command prompt for a list of all available dialogue box commands The following commands are available: L A T I L X Y L T A LA This option allows the user to edit the label for individual curves. Enter the curve number at the Select curve? prompt Enter the desired new label at the Label prompt, The current Label will be displayed in brackets TI This option allows the user to edit the title for individual curves. Enter the curve number at the Select curve? prompt Enter the desired new title at the Title prompt, The current title will be displayed in brackets Page 5.56

87 User manual Version 15.0, May 2018 T/HIS XL This option allows the user to edit the x-axis label for individual curves. Enter the curve number at the Select curve? prompt Enter the desired new title at the X- Axis prompt, The current x-axis label will be displayed in brackets YL This option allows the user to edit the y-axis label for individual curves. Enter the curve number at the Select curve? prompt Enter the desired new title at the Y- Axis prompt, The current y-axis label will be displayed in brackets TA This option allows the user to edit the tag for individual curves. Enter the curve number at the Select curve? prompt Enter the desired new Tag at the Tag prompt, The current tag will be displayed in brackets Page 5.57

88 T/HIS User manual Version 15.0, May 2018 5.7 Command / Session Files Command and session files are used to drive or record a T/HIS session. Both session (save) and command (playback) files have been set up to act like tape recorders; and the concept of "recording" and "playing back" files will be used below. These files ("button click" command files) are not easy to edit by hand and they are not always backwards compatible between versions of T/HIS. For these reasons most users prefer the new T - T C F format, which can also be S F A l a y e d b a c k from within recorded and p T/HIS. HELP In screen menu mode a command has a meaning beyond the simple command word. For example, appears in many different places, with a distinct meaning (or relevance) in each place. Therefore, context information is stored when saving screen menu session files. In practice the following information is saved: • the command itself - whether typed of inferred from a button the button identification (if any) • • the parent window identification • the menu item (if relevant) the action type (screen pick, button press, etc) • • any x/y coordinates that may be relevant. A choice of either writing ("recording") session files or executing ("playing back") command files is given. By default commands are not saved. If they are to be saved the session file record switch must be turned on. Page 5.58

89 User manual Version 15.0, May 2018 T/HIS 5.7.1 Writing ("Recording") Session Files To write a session file the record button must be pressed, CONTROLS... displaying the RECORD COMMAND FILES menu shown right. Pressing the button will start RECORD > the session file. Thereafter, all commands (except those in the session/playback windows) are saved in an internal scratch file. In order to save these commands to disk they must be written explicitly using button. They can SAVE TO DISK the then be read back in and replayed A variety of features are available to help move around the file. These are shown in FILE POSITION AND CONTROL the area of the panel. The file can be indexed at particular user defined points using the menu is accessed by INDEX MARKS E X N . . button. These may D . pressing the I be used as targets of a search and also to control recording. The scratch file is random access, and can be moved back and forth and reviewed at will. To help with this it is RECORD and REVIEW modes in the session file control box: possible to switch between RECORD records all your commands when running plays back your recorded commands REVIEW A command file can be stepped through or run backwards or forwards. It may also be searched for a particular command. As with a real tape recorder, if the pointer is moved backwards and recording continued the commands that were previously stored will be overwritten from that point. The session file recording and command file playback operations are totally separate: they can be thought of as two separate tape recorders. As a consequence it is possible to record commands that are being played back: in effect it is possible to edit and combine files. Page 5.59

90 T/HIS User manual Version 15.0, May 2018 5.7.2 Executing ("Playing Back") Command Files As above, the PLAYBACK COMMAND menu, shown right, must be FILES COMMAND/SESSION invoked from the FILES window. This is done by pressing the playback button. An existing file CONTROLS... must then be read. This is analogous to loading a tape into the tape recorder: it is then converted into an internal scratch format (random access, as above) and can be played back of previewed at will. Once a file is read in either PLAYBACK mode may be selected: or PREVIEW actually executes the PLAYBACK commands, simply lists them without PREVIEW executing them. The file may be stepped through backwards or forwards at will, and searches made for commands. Playback commences at the current line when PLAY is pressed, so it is possible to skip unwanted commands or repeat a sequence. above, index marks RECORD As with can be inserted, which may be used as targets of a search and also to stop playback. Page 5.60

91 User manual Version 15.0, May 2018 T/HIS 5.7.3 INDEX MARKS "Index marks" are optional flags that you can set at any line in a file. They are not interpreted as commands but rather treated as markers which are used as targets of C operation. Index mark functions E A H S R are: SET Set an index mark on this line; CLEAR Clear an index mark set on this line Stop in PLAY/REVIEW mode STOP when index found IGNORE Ignore index marks during PLAY/REVIEW Finds the next index mark: "<<" FIND INDEX searching backwards, ">>" searching forwards CLEAR Clear all index marks in the file ALL 5.7.4 SEARCH SEARCH REVIEW mode. You can search through the buttons can be used to find a specific command when in The command file for a match to any permutation of the following: The name of a screen menu Box name box inside’ which an event occurred The screen menu function Function type. This is "button press", "dialogue", etc; The command word(s) to look Command for. The default for all of these is "", ie a wildcard search, but you can specify a value by typing into the appropriate text box. When you have filled in all the fields APPLY to start the search. you need, press ’"Box name" and "Function" fields are unlikely to be of use to most users, you can list all valid events using " ? " button to ANY provide a menu to pick from. The button may be used for any field to restore it to its default (wildcard) status. 5.7.5 Command Line Mode Session / Command File Control The available features in command line mode for command and session file control are very basic. A session file can (in the GLOBAL MENU ) followed by the desired filename. This is equivalent to recorded at any point by typing SF button in screen menu mode. The session file can be closed by typing and is automatically written to CS the RECORD disk. This is equivalent to pressing the STOP and SAVE TO DISK buttons in screen menu mode. , followed by the filename. To execute an existing command file in T/HIS simply type CF No previewing/reviewing or editing of command/session files is possible in command line mode. 5.7.6 Command Files From Earlier Versions Of T/HIS Command files recorded in Version 9.0 or earlier will not work in T/HIS15.0. Page 5.61

92 T/HIS User manual Version 15.0, May 2018 5.8 IMAGE Options 5.8.1 BMP,JPEG ... This menu can be used to save an image containing one or more graphs in a number of different formats. All Pages Each page will be saved as a single image to multiple files. The filenames used will be based on the filename selected by the user.. This option will only be available if T/HIS contains multiple graphs on more than s e c t i one page ( n 3 . 2 ). s e e o Current Page A single image containing currently displayed page will be generated. This option will only be available if T/HIS contains multiple graphs on more than e s e c t i o n e . 2 ). s one page ( 3 A single image containing the selected page will be generated. Only Page (n) This option will only be available if T/HIS contains multiple graphs on more than e e s e c t i o n 3 . 2 ). one page ( s A single image will be generated containing all of the graphs. All Graphs e S e c t i o e This option will only be available if T/HIS only contains a single page ( s n 2 ). . 3 All Active Graphs A single image will be generated containing all of the currently active graphs. e e S e c t i o n This option will only be available if T/HIS only contains a single page ( s 2 ). . 3 Only Graph (n) A single image containing the selected graph will be generated. White Background Captures the image with a white background and black foreground. Once the image is captured the colours are reset to their original values. Page 5.62

93 User manual Version 15.0, May 2018 T/HIS 5.8.1.1 File Format 8-bit file formats BMP Uncompressed Uncompressed 8 bit Microsoft windows bitmap. The approximate size of the file (in bytes) is file size= image width * image height BMP Compressed 8 bit RLE Microsoft windows bitmap. PNG 8 bit Portable Network Graphics Graphics Interchange Format GIF 24-bit file formats Uncompressed 24 bit Microsoft windows BMP bitmap. The approximate size of the file (in bytes) is file size = 3 * image width *image height PNG 24 bit Portable Network Graphics JPEG (Joint Photographic Experts Group) JPG file ortable P Uncompressed M ap. The PPM P ix approximate size of the file (in bytes) is file size = 3 * image width *image height Resolution 5.8.1.2 All images can be output at either the screen resolution or at a resolution of either 2 or 4 times the screen resolution. Page 5.63

94 T/HIS User manual Version 15.0, May 2018 5.8.2 Postscript This menu can be used to save an image containing one or more graphs to either a PDF or Postscript file. All PDF and Postscript files are generated using raster images so that the contents of the screen is exactly reproduced. All Pages All T/HIS pages containing 1 or more graphs will be saved to a single file. This option will only be available if T/HIS contains multiple graphs on more than one e S e c page ( i o n 3 . 2 ). s e t The current T/HIS page will be saved. Current Page This option will only be available if T/HIS contains multiple graphs on more than one e e S e c t i o n 3 . 2 ). s page ( Only Page (n) A single image containing the selected page will be generated. This option will only be available if T/HIS contains multiple graphs on more than one n S e c t e o e 3 . 2 ). s page ( i All Graphs A single image will be generated containing all of the graphs. n e S e c t i o e This option will only be available if T/HIS only contains a single page ( s 2 ). . 3 Page 5.64

95 User manual Version 15.0, May 2018 T/HIS All Active Graphs A single image will be generated containing all of the currently active graphs. o e c t i e n This option will only be available if T/HIS only contains a single page ( S s e ). 3 . 2 A single image containing the selected graph will be generated. Only Graph (n) Captures the image with a white background and black foreground. Once the image White Background is captured the colours are reset to their original values. 5.8.2.1 File Format All images can be output at either the screen resolution or at a resolution of either 2 or 4 times the screen resolution. and Fig Number 5.8.2.2 Title By default PDF and Postscript files are not labeled and have no figure number, but you may add either or both of these. They are always put at the bottom of each page, along the short edge, regardless of the orientation used for plots. 5.8.2.3 Resolution All images can be output at either the screen resolution or at a resolution of either 2 or 4 times the screen resolution. 5.8.2.4 Orientation All images can be output in either landscape or portrait format. 5.8.2.5 Aspect Ratio By default all images are output using a fixed aspect ratio. This option can be used to stretch each image to fit the available space on the page. Different scaling factors will be applied to the horizontal and vertical directions and the image will be distorted. 5.8.2.6 Paper Size The paper size can be set to be either A4 (210 x 296mm), A3 (296 x 420mm) or US (letter - 216 x 279mm). The default size is A4. 5.8.2.7 Layout Multiple plots on a page are also available. In landscape format there is a choice of 1, 2x2, 3x3 and 4x4 plots to a page. In portrait format there is a choice of 1, 1x2, 2x3 and 2x4 plots on a page. By default there is a single plot on a page. When multiple plots are requested the order in which they are performed can be defined. Page 5.65

96 User manual Version 15.0, May 2018 T/HIS 5.8.2.8 Margins The Margins can be used to change the top, bottom, left and right margins for each page. 5.8.3 Background This option can be used to add a background image to each graph (see . 1 6 . 8 for more details). section 5 Page 5.66

97 User manual Version 15.0, May 2018 T/HIS 5.9 OPERATE Options menu shown in the The OPERATE figure (right). If the mouse is left hovering over an option a short description of the function will appear. For these functions, the user selects a range of curves to be operated on. A range may be one or more curves, making it possible to operate on multiple curves, for example add 20 curves to 20 curves. The options with the OPERATE menu are split into 3 groups. The first group require 2 sets of curves as input. The second group require a single set of curves as input. The third group also require a single set of curves as input but e c t i o n 5 . 0 for more information on curve groups). the output from these functions is a single curve. (See S Produces the absolute y-values of a curve. ABS 5.9.1 Add the y axis values together for two curves or add a constant value to all the y-values. If two ADD 5.9.2 curves are being added together they must have identical x-axis values. If not, the resultant curve is generated by considering every x-coordinate on both curves and by interpolating the other curve as needed. Any duplicate points as well as points outside the range where the input curves overlap are culled as needed. Add the x axis values together for two curves or add a constant value to all the x-values. If two 5.9.3 ADX curves are being added together they must have identical y-axis values. If not, the nth x-value from the second curve is simply added to the corresponding x-value on the first curve and the y-value from the first curve gets used by the resultant as is. Produces a single curve that is the average of the input curves. 5.9.4 AVE Concatenate the second curve to the end of the first. 5.9.5 CAT Page 5.67

98 T/HIS User manual Version 15.0, May 2018 Clip a curve to remove CLIP 5.9.6 any points that exceed a set of specified minimum and maximum x & y axis value. The user is prompted for minimum and maximum values after the curves have been selected.. Instead of typing in values for the limits individual x and y axis minimum and maximum values can be selected by picking screen points. In addition to picking individual points an area can be dragged out interactively to set all 4 limits. When picking screen points the default is to allow any point to be selected. Snap to curve points can be used to select the point on the nearest curve instead of the screen coordinates. Two curves are combined to give a new curve. For example if a displacement/time curve is COM 5.9.7 combined with a velocity/time curve a velocity/displacement curve will result. If the 2 curves do not contain points at the same x values then the curve with the larger x-axis intervals is automatically mapped on to the x-axis values of the other curve. If the curves do not start and finish at the same x-axis values then only the points for which the two curve x-axes overlap are mapped onto each other. A curve is differentiated with respect to the x-axis variable. 5.9.8 DIF Divide the y axis values of the first curve by the y axis values of the second curve (or a constant). If 5.9.9 DIV two curves are being used they must have identical x-axis values. If not, the resultant curve is generated by considering every x-coordinate on both curves and by interpolating the other curve as needed. Any duplicate points as well as points outside the range where the input curves overlap are culled as needed. Divide the x axis values of the first curve by the x axis values of the second curve (or a constant). If DIX 5.9.10 two curves are being used they must have identical y-axis values. If not, the nth x-value on the first curve is simply divided by the corresponding x-value on the second curve and the y-value from the first curve gets used by the resultant as is. Produces a single curve that bounds the maximum and minimum values of the group of input curves. 5.9.11 ENV Page 5.68

99 User manual Version 15.0, May 2018 T/HIS This option reports the degree of correlation between 2 input curves. The first curve selected is 5.9.12 used as a reference curve and the following parameters are then reported : ERR Value & Time Maximum difference : Value as a %age of reference curve Value as a %age of reference curve peak value. Average difference - Value %age of reference curve peak value Area Weighted Difference Correlation Parameter 0 to 1 - p e n d i x G p For more details on this function please see A A curve is numerically integrated with respect to the x-axis variable using Simpson’s rule. INT 5.9.13 Fits a straight line through the points using the least squares method. 5.9.14 LSQ The second curve is mapped onto the first curve, the resulting curve has identical x-axis values to 5.9.15 the reference (first) curve with y-axis values obtained from the mapped (second) curve. MAP Produces a single curve that bounds the maximum values of the group of input curves. 5.9.16 MAX Produces a single curve that bounds the minimum values of the group of input curves. 5.9.17 MIN Sorts a curve into monotonically increasing x-axis values. 5.9.18 MON Multiply the y axis values together for two curves or multiply all the y-values by a constant. If two 5.9.19 curves are being multiplied together they must have identical x-axis values. If not, the resultant curve is generated by considering every x-coordinate on both curves and by interpolating the other MUL curve as needed. Any duplicate points as well as points outside the range where the input curves overlap are culled as needed. Multiply the x axis values together for two curves or multiply all the x-values by a constant. If two 5.9.20 curves are being multiplied together they must have identical y-axis values. If not, the nth x-values on the two curves are simply multiplied together and the y-value from the first curve gets used by MUX the resultant as is. Page 5.69

100 T/HIS User manual Version 15.0, May 2018 Normalize a curve so that the 5.9.21 y axis values lie in the range [-1, +1]. NOR If the manual normalizing range is checked then a custom value can be chosen to normalize with. The custom value chosen for normalizing is calculated by taking the absolute maximum of the user-defined textbox values. In addition to this is the option to Lock to the specified Min and Max axis values which can be used for normalizing the curve to the axis value. Normalize a curve so that the 5.9.22 x axis values lie in the range [-1, +1]. NOX If the manual normalizing range is checked then a custom value can be chosen to normalize with. The custom value chosen for normalizing is calculated by taking the absolute maximum of the user-defined textbox values. In addition to this is the option to Lock to the specified Min and Max axis values which can be used for normalizing the curve to the axis value. Reverse the order of all the points in the curve. 5.9.23 ORDER Produces the reciprocal of the y-values of a curve. 5.9.24 REC Calculate the vector magnitude from a group of input curves. 5.9.25 RES Page 5.70

101 User manual Version 15.0, May 2018 T/HIS Reverses the x and y axes of a curve. For example if you start with a curve with displacement (y 5.9.26 axis) against time (x axis) you end up with a curve of time (y axis) against displacement (x axis). REV Produces a single curve of the 5.9.27 running average on the input curve. R-AVE If the time window is set to 0 then the y values for the output curve are the average value of all the point up to that point. If the time window is non-zero (T) then the y values at each point are calculated by averaging the values between -T/2 and +T/2. A moving average technique is used to smooth (filter) 5.9.28 a curve. The user will be prompted for a smoothing SMO factor. The integer refers to the number of points included in the averaging of each point. The value you want will depend on the number of points in the curve and the amount of smoothing required. A certain amount of trial and error is necessary to get the required result. Take the square root of the y-values of a curve. 5.9.29 SQR Converts a stress / strain curve between True and Engineering Stress /Strain. 5.9.30 STRESS Subtract the y axis value (or constant) of the second curve from the first curve. If two curves are 5.9.31 being subtracted they must have identical x-axis values. If not, the resultant curve is generated by considering every x-coordinate on both curves and by interpolating the other curve the other curve SUB as needed. Any duplicate points as well as points outside the range where the input curves overlap are culled as needed. Subtract the x axis value (or constant) of the second curve from the first curve. If two curves are 5.9.32 being subtracted they must have identical y-axis values. If not, the nth x-value from the second curve is simply subtracted from the corresponding x-value on the first curve and the y-value from SUX the first curve gets used by the resultant as is. Calculates the sum of a group of curves. This "sums" up the y-axis values of a group of curves, and 5.9.33 maps the result onto the x-axis of the first curve. SUM Translate a curve with respect to the x and y axes. The user is 5.9.34 prompted for the x and y values. TRA Calculate the vector magnitude from three input curves. 5.9.35 VEC Calculate the vector magnitude from two input curves. 5.9.36 VEC(2-D) Page 5.71

102 T/HIS User manual Version 15.0, May 2018 This function is typically used to modify 5.9.37 a curve before carrying out an FFT on it. WINDOW The y-axis values for each of the input curves is multiplied by a factor between 0 and 1. Three different window shapes are available. The Store Window option can be used to output the Curve multiplying factors to a separate curve if required. Translate a curve so that the first data 5.9.38 point is moved to (0,0). ZERO By default this option will translate the curve in both X and Y, alternatively the curve can be translated in X only or Y only. Converts a curve to dB. 5.9.39 dB f(x) = 20log(y/ref) Converts a curve from dB to dBA by applying 5.9.40 "A" weighting factors to the curve values. dBA • Narrow band A weighting values are calculated using a formula. 1/3 Octave A weighting values are • calculated from a lookup table. Converts a curve from narrow 5.9.41 band to either Octave bands or Octave 1/3 rd Octave bands. The input curve can either be a curve that has already been converted to dB or it can be an unconverted "linear" curve. The output curve can also be generated using either Mean values or RMS values. Page 5.72

103 User manual Version 15.0, May 2018 T/HIS 5.10 MATHS Options The menu is shown in the figure (right). This MATHS menu allows mathematical operations to be applied to curves. These options are self explanatory and work on the y-value of the curve (except where explicitly stated). Note: Trigonometrical functions expect the user to work in radians. The square root of a curve. 5.10.1 SQRT Natural log (to base e) 5.10.2 LOG e to power of. 5.10.3 EXP Log to base 10 5.10.4 LOG10 Raise to power n. 5.10.5 **n Log to base 10 (x-axis values) LOG(x) 5.10.6 Log to base 10 (x-axis values) LOG10(x) 5.10.7 Sine (radians assumed) SIN 5.10.8 Arc sine 5.10.9 ASIN Cosine 5.10.10 COS Arc cosine ACOS 5.10.11 Tangent TAN 5.10.12 Arc tangent 5.10.13 ATAN Arc tangent using two curves 5.10.14 ATAN2 Page 5.73

104 T/HIS User manual Version 15.0, May 2018 5.11 AUTOMOTIVE Options menu is shown in the AUTOMOTIVE The figure (right). The automotive options are a number of operations that can be performed on curves, typically finding their use in the Automotive industry. They consist of filters and injury criteria calculations, along with a number of other useful functions. E C and V All the options in the C ( 2 D ) AUTOMOTIVE menu require a single set of curves as input except the V E c t i o n 5 . 0 for S options which require groups of 3 or 2 curves respectively as input but only output a single curve. (See e more information on curve groups). Notes on using the various filters When filtering curves the sampling rate of the data should be considered: it should be at least twenty times the filter cutoff frequency if good results are to be obtained. E G R T/HIS will reject attempts to filter curves for which the sampling rate is too low, if this happens the option can be used to increase the number of points. This will allow the filter to function although it is not a good substitute for obtaining data at a higher sampling rate. p p e n d i c e s D & G . For more information on the filters and injury criteria calculations see A All of the filters expect the input curve to have a consistent time interval. When using one of the filter options the user R ) before filtering if the time interval is can specify a time interval for the curve to be automatically regularised to ( E G not consistent. The user can set a default time interval for regularising the input curves in the PREFERENCE menu. The PREFERENCE menu can also be used to automatically convert the x axis values from milliseconds to seconds before filtering and to convert the curve back to milliseconds afterwards. Filter a curve using a standard SAE Class 60 filter. 5.11.1 C60 Filter a curve using a standard SAE Class 180 filter. 5.11.2 C180 Filter a curve using a standard SAE Class 600 filter. 5.11.3 C600 Filter a curve using a standard SAE Class 1000 filter. C1000 5.11.4 The curve is BUT 5.11.5 passed through a Butterworth filter. The user is prompted for the cutoff frequency and the order of the filter. This passes a curve through a Pure Butterworth filter. This is the same as the BUT 5.11.6 BUT(p) p p e n d i x D , to minimise function above, but the two refinements, described in A end-effects and phase change errors are not included. Special filter for US "SID" dummy. FIR 5.11.7 Page 5.74

105 User manual Version 15.0, May 2018 T/HIS Calculates the HIC 5.11.8 Head Impact Criteria from an acceleration time history. The user is prompted for the time window and the acceleration conversion factor. Normally this option writes the HIC value to the screen. If required the values may option. WRITE TO FILE also be written out to a file using the The time unit for the input curve should be seconds. T/HIS look at the range of the x-axis values and if the range is >1 then T/HIS will assume the x-axis values are in ms and it will automatically divide the x-axis values by 1000. If the y-axis values are not in (G) then an optional factor can be specified that T/HIS will DIVIDE the y-axis values by to convert them to (G). Example factors for different units are : Unit Factor 2 9.81 m/s 2 9810 mm/s 2 0.00981 mm/ms In addition to calculating and reporting the HIC value the time window and value can option. Show HIC Value be displayed on the graph using the See A e n d i x E for more details on the Head Impact Criteria calculation. p p Page 5.75

106 T/HIS User manual Version 15.0, May 2018 HIC(d) is used to calculate the Head Injury Criteria for the Free Motion Headform 5.11.9 HIC(d) used within the FMVSS201 legislation. The equivalent dummy HID(d) is calculated as follows HIC(d)= 0.75446x(free motion headform HIC)+166 Calculates the 5.11.10 CLI 3ms clip value from an acceleration time history. Normally this option writes the value to the screen, and produces a curve of the clip region. ". This label can be 3ms = value By default the screen value will be labeled as " Screen Label. modified by specifying a different If required the values may also be written out to a file using the WRITE TO FILE option. In addition to calculating and reporting the 3ms clip value the time window and value can be displayed on the graph using the option. Show 3ms Clip Value x p p d i e E for more details on the 3ms clip calculation. n A See Calculate and displays an EXC eedence plot. This is a EXC 5.11.11 plot of force (y-axis) versus cumulative time (x-axis) for which the force level has been exceeded. By default the option will create an exceedence plot using Automatic either the +ve OR the -ve values depending on which the Positive option will input curve contains most of. The calculate the exceedence plot using only the points with +ve y values. The option will calculate the Negative exceedence plot using only the points with -ve y values. Calculates the 5.11.12 VC V iscous C riteria from an acceleration time history. The user is prompted for the constants A and B. See p e n d i x E A p for more details on the VC calculation. Page 5.76

107 User manual Version 15.0, May 2018 T/HIS cceleration A ASI 5.11.13 everity S ndex. This I value is used to assess the performance of road side crash barriers. This option requires 3 acceleration input curves. The user is prompted for the acceleration limits in the 3 directions. The calculation method can be set to 2010 (BS EN 1317-1:2010) or 1998 (BS EN 1317-1:1998). p e See d i x A p n E for more details on this calculation. heoretical T THIV 5.11.14 mpact I H ead elocity and V the P ost ead mpact I H D eceleration. These values are used to assess the performance of road side crash barriers. This option requires 3 input curves, a longitudinal and lateral acceleration and a p p e n d i x E rotation rate. The user is prompted for the constants Dx, Dy and Xo. See A for more details on these calculations. Page 5.77

108 T/HIS User manual Version 15.0, May 2018 Biomechanical NIJ 5.11.15 neck injury predictor. Used as a measure of injury due to the load transferred through the occipital condyles. This option requires 3 input curves. 1 to represent Shear force, 1 to represent Axial force and a third to represent bending moment in the dummy’s upper neck loadcell. Enter these curves in the corresponding input boxes. The 4 critical constants used to calculate NIJ; Fzc (tension), Fzc (comp), Myc (flexion) and Myc (extension) default to the values specified by the test creators. These can be changed by entering different values into the respective boxes. Enter the e distance into the e (distance) box. Select which curves you wish to output to in the Output box. For more information on the calculation of NIJ, refer to A e n d i x E p p NIJ will output 4 curves due to the 4 possible loading conditions for Nij; Nte is the tension-extension condition Ntf is the tension-flexion condition Nce is the compression-extension condition Ncf is the compression-flexion condition Page 5.78

109 User manual Version 15.0, May 2018 T/HIS Thorax Trauma TTI 5.11.16 Index: This option requires 3 input curves. 1 to represent the Upper Rib Acceleration, 1 to represent the Lower Rib Acceleration and a third to represent the Lower Spine Acceleration. Enter these curves in the corresponding input boxes. The output can either be written to the screen, appearing in a listing box, or written to a file specified in the File: input box, or both. If the write to screen tab is highlighted, the following window will appear: p p e n d i x E For more information on the calculation of TTI, refer to A Normalise the curve so that the Y values are within the range [ -1, +1]. NOR(y) 5.11.17 Normalise the curve so that the X values are within the range [ -1, +1]. NOR(x) 5.11.18 Make a curve have a constant time step. 5.11.19 REG It is necessary for a curve to have a constant time step between points for it to be filtered. This option takes an existing curve and prompts the user for a new time step. The points of the output curve are calculated by linear interpolation. Regularising a curve may alter its peak values, and could change filtered output slightly. Calculate the vector magnitude of three input curves. VEC 5.11.20 Calculate the vector magnitude of two input curves. VEC2D 5.11.21 Airbag control Unit 5.11.22 ACU Page 5.79

110 T/HIS User manual Version 15.0, May 2018 Curve correlation function. 5.11.23 COR1 The Correlation function provides a measure of the degree to which two curves match. When comparing curves by eye, the quality of correlation may be judged on the basis of how well matched are the patterns of peaks, the overall shapes of the curves, etc, and can allow for differences of timing as well as magnitude. Thus a simple function based on the difference of Y-values (such as T/HIS ERR function) does not measure correlation in the same way as the human eye. The T/HIS correlation function attempts to include and quantify the more subtle ways in which the correlation of two curves may be judged. The input parameters for the COR1 function have been chosen so as to produce a strict judgement of the correlation (see Appendix F for more details). The COR2 function is the same as COR1 except the input parameters have been COR2 5.11.24 chosen so as to produce a less strict judgement of the correlation (see Appendix F for more details). Another curve correlation function. COR3 5.11.25 This function first normalises the curves using two factors either specified by the user or defaults calculated by the program (the maximum absolute X and Y values of both graphs). For each point on the first normalised curve, the shortest distance to the second normalised curve is calculated. The root mean square value of all these distances is subtracted from 1 and then multiplied by 100 to get an index between 0 and 100. The process is repeated along the second curve and the two indices are averaged to get a final index. The higher the index the closer the correlation between the two curves. Note that the choice of normalising factors is important. Incorrect factors may lead to a correlation index outside the range of 0 to 100 (see Appendix F for more details). Weighted Integrated Factor (WIFAC) curve correlation function. WIF 5.11.26 Compares curves using the Weighted Integrated Factor method (WIFAC). A value between 0 and 100 is calculated, the higher the index the closer the correlation between the two curves. See Appendix F for more details. Page 5.80

111 User manual Version 15.0, May 2018 T/HIS 5.12 SEISMIC Options SEISMIC The menu is shown in the figure (right). T/HIS can be used to handle response spectra information. In particular, displacement, velocity or acceleration spectra can be read and converted to another format. Displacement spectrum is converted to a velocity spectrum 5.12.1 DV Displacement spectrum is converted to an acceleration spectrum 5.12.2 DA Velocity spectrum is converted to a displacement spectrum 5.12.3 VD Velocity spectrum is converted to an acceleration spectrum 5.12.4 VA Acceleration spectrum is converted to a displacement spectrum AD 5.12.5 Acceleration spectrum is converted to a velocity spectrum. 5.12.6 AV Produce a design spectrum from a response spectrum through the specification of a broadening 5.12.7 DS factor.. Produce a response spectrum from input accelerations. This gives the response of a damped 5.12.8 RS single degree of freedom system, given its damping factor and period, to the input acceleration time-history. Perform a fast Fourier transform. Convert an input signal from the time to the frequency FFT 5.12.9 domain. There are three options for output; magnitude only • magnitude and phase • • real and imaginary components of the time signal. The frequency is calculated in Hz NOT radians/s if the time axis is in seconds. T/HIS automatically adds points with zero y-value to the end of the curve to pad the curve out so that the number of points is increased to the next power of 2. There are two options for scaling the curves output: • Scaling Option 1 - Consistent with other signal processing software giving a magnitude independent of any padding. This is the default and recommended for most purposes. Performing an inverse FFT on the resulting curves will NOT get back exactly to the original curve if it did not have a number of points equal to a power of 2. • Scaling Option 2 - With this option, applying an inverse FFT to the resulting curves will generate a curve the same as the original even if the original curve did not have a number of points equal to a power of 2. This is useful if users wish to create their own filters, where the filter characteristic is defined in the frequency domain. An option to regularise the curve before performing the function is on by default. The spacing between points on the frequency axis of the resulting curve is determined by the time duration of the padded input curve; dx = 1.0/(time). The highest frequency in the output curve is determined by the time interval of the input curve; F(max). = (#points)/dt Page 5.81

112 T/HIS User manual Version 15.0, May 2018 Performs an inverse fast Fourier transform. Converts two input signals from the frequency to IFFT 5.12.10 the time domain. The two input signals can be the magnitude and phase or real and imaginary components of the time signal. NOTE: If an FFT using scaling option 1 is performed on a curve that does not have a number of points equal to a power of 2 and then an IFFT is performed on the resulting curves you will NOT get back exactly to the original curve. This is because the FFT and IFFT both scale their output curves by the number of points in the curve, which in this case will be different. For the FFT the number of points used to scale the curves is the original number of points before padding. For the IFFT the number of points used is the original number of points plus the points needed to make it a power of 2. If the number of points in the original curve is a power of 2 and no padding is required, the IFFT of the resulting curves will get back to the original curve. By default beam element plastic rotations are always written out by LS-DYNA as being NCP 5.12.11 increasing +ve (i.e. cumulative). This option allows a non-cumulative plastic rotation to be calculated by taking two input curves: the moment/time and the cumulative rotation/time histories for the beam in question. dddddddddddddddddddd Baseline correction. BLC 5.12.12 Page 5.82

113 User manual Version 15.0, May 2018 T/HIS 5.13 MACRO Options The menu can be used to play FAST-TCF based macro files on existing T/HIS curves. MACRO T/HIS macro files can be stored in any directory. Each user can define up to three macro areas using the oa_pref option: this*macro_directory: C:\blah\macros T/HIS will read any files within the macro .thm directories and generate the macro menu (shown right) using keywords within the macro scripts. T/HIS will search the macro directories in the following order. this*macro_directory from SYSTEM oa_pref file this*macro_directory from users oa_pref file this*macro_directory from local oa_pref file The scripting for a macro in T/HIS is based upon FAST-TCF using variables within the script (see S T - T C F s e c t i o n for more details). There are F A some extra command options to make T/HIS aware of input curves and constants within the macro. These macro keywords are as follows: acronym for the macro button in T/HIS macro acr a more descriptive title for the macro macro title FAST-TCF variable name for input curve followed by curve macro curve description FAST-TCF variable name for input constant followed by constant macro const If one or more macro files are found with duplicate acronyms then only the last file read will be displayed so users can override SYSTEM macros with there own definitions if they want to. When the user selects one of the Macro functions the macro file associated with the function is read and T/HIS creates a selection menu for the user to define the relevant curve numbers and constant values to input into the macro script. the variables used within the macro. replace These inputs will #1 for the macro curve variable macro_input , then any occurrence of For example: If the user selects #1 . $macro_input in the macro script will be replaced by Page 5.83

114 T/HIS User manual Version 15.0, May 2018 An example macro script follows. This macro asks the user for a filter option (e.g. c60, c600, c1000) and also an input curve number. The macro then filters the input curve and divides by 9810. # Macro to convert a file to g after filtering # macro to_g acr macro title filter and convert curve to g input curve macro_input curve macro macro_filter filter to use macro const # none model 1 model oper $macro_filter $macro_input tag filtered filtered 9810.0 oper div Page 5.84

115 User manual Version 15.0, May 2018 T/HIS 5.14 FAST-TCF Options FAST-TCF menu can be used to capture and playback FAST-TCF scripts. FAST-TCF is a simple and intuitive The t T - T C F ( s e scripting language for T/HIS. See F i o n 7 ) for more details and commands. A S c Create 5.14.1 T/HIS 9.2 onwards has the ability to automatically generate FAST-TCF scripts using the CREATE menu. The FAST-TCF script will contain all of the commands required to 1. Create and position multiple graphs on pages. 2. Extract the data from models or other files 3. Carry out any curve operations required to reproduce the chosen curves Set any curve styles and labels 4. Set plot attributes such as titles, axis labels, 5. colours, fonts and scaling 6. Generate the output image and/or curve file Generate curve groups 7. 8. Generate variable and tabular output requests Before generating the FAST-TCF script the following options can be set Page 5.85

116 T/HIS User manual Version 15.0, May 2018 Generate For All Pages The FAST-TCF script will contain all of the commands required to regenerate all of the pages that contain 1 or more graphs. If the option to generate images is selected then the FAST-TCF script will contain the commands to generate multiple images with the page number appended to the filename specified. Current Page The FAST-TCF script will contain all of the commands required to regenerate the currently displayed page. The FAST-TCF script will contain all of the commands required to regenerate the Only Page (n) selected page. All Graphs The FAST-TCF script will contain all of the commands required to regenerate all the currently defined graphs. All of the graphs will be positioned on page 1 using the currently defined layout. s This option will only be available if T/HIS only contains a single page ( e c t i o e e S n 2 3 . ). All Active Graphs The FAST-TCF script will contain all of the commands required to regenerate all of the active graphs. All of the graphs will be positioned on page 1 using the currently defined layout. e S e e t i o n c This option will only be available if T/HIS only contains a single page ( s 2 ). 3 . The FAST-TCF script will contain all of the commands required to regenerate the Only Graph (n) selected graph. The graph will be positioned on page 1. FAST-TCF Script : Image Output If this option is selected then the FAST-TCF script will contain the commands required to generate an image of each of the pages/graphs selected for output. The can be set to any of the supported image types ( s Image Format e e t S o n 5 . 8 ). e c i specified will be used for the first image. If the FAST-TCF script generates multiple pages then the Filename Subsequent images will use the specified filename with "_2", "_3" ... appended. FAST-TCF Script : Curve Output By default the FAST-TCF script will only contain the command needed to reproduce the curves that are unblanked in 1 or more of the graphs selected for output. This option can be used to select additional curves for which the commands required to generate them are also added to the FAST-TCF script. If a curve is selected that is also unblanked in one of the graphs the command to regenerate it are only added to the FAST-TCF script once. In addition to selecting additional curves this option can also be used to add commands to the FAST-TCF script to write the additional curves out to a T/HIS .cur curve file. FAST-TCF Script : Curve Group Output This option can be used to select additional curves for output to the FAST-TCF script by curve group. If a curve is selected that is also unblanked in one of the graphs the command to regenerate it are only added to the FAST-TCF script once. This option will also add the commands to regenerate the selected curve groups to the FAST-TCF script. FAST-TCF Script : Variable Output This option can be used to define variable and tabular output requests for output to the FAST-TCF script via the menu launched by pressing the button. Variable and tabular output requests defined in a FAST-TCF script that is read in will appear in the menu. Page 5.86

117 T/HIS User manual Version 15.0, May 2018 Variable Output Tabular Output are selected at the top of the menu. Each output request is defined on a row of or the table. The curve and variable type are selected using the drop down menu. A default variable name is generated and can be manually edited or a name can be selected from variable names that are present in Reporter. Additional value fields are populated with default values if required and these can be edited. The output description is also populated with default text that can be edited. The output type is selected using the drop down menu. Curve Lock prevents the curve that the variable refers to from being deleted. If a curve is not locked and is deleted, then any variables associated with that curve will also be deleted. Pressing the heading buttons will sort the output request definitions. Page 5.87

118 T/HIS User manual Version 15.0, May 2018 5.14.2 Run This menu allows the user to run a FAST-TCF file from within T/HIS. After the user has selected the FAST-TCF file T/HIS scans the file for data requests and model requests to see what input the FAST-TCF file requires. Note that there must be a model read into T/HIS before a FAST-TCF file that contains data extraction can be run. The next FAST-TCF command line is displayed in red in the upper text area, at Play the this point the user can select to Step FAST-TCF file or through it line by line. After every line of FAST-TCF the resulting command in T/HIS is shown in the lower text area. Select End during stepping through the lines to go to the end of the file. Reread will re read the file and start back at the beginning. option allows the Model Mapping The user to define which model in T/HIS should be used for the equivalent model number in the FAST-TCF script. The model number is equivalent to the zero default model in FAST-TCF if no models are defined. The default model mapping will use the same model numbers as in the FAST-TCF script. will force Auto confirm text boxes T/HIS to confirm any text boxes that should appear in the interactive playback of a FAST-TCF script (such as HIC results and so on). The FAST-TCF script will ignore any existing T/HIS curves and their tags. This guarantees that the user can run a single FAST-TCF file many times and it will only use the new curves created by FAST-TCF. Page 5.88

119 User manual Version 15.0, May 2018 T/HIS 5.15 TITLE/AXES/LEGEND Options The menu is shown in the TITLE/AXES figure (right). This menu controls the contents of the title and axes labels and the axis scaling. The individual axis, title and legend menus can also be accessed by clicking over the appropriately highlighted area on the graph. Changes to the TITLE/AXES/LEGEND s options are only applied to active graphs ( e e t i o n 3 . 5 ). S c e TITLE 5.15.1 matically or manually. The plot title may be set AUTO option is selected the text box will When the AUTO and the plot title will be set to the display title of the first curve that is currently being plotted. The plot title may be turned on and off by toggling the ON / OFF button. Save Preferences to File Launches a popup to quickly save preferences to the e c t i o n 6 . 6 . 1 oa_pref file. See S Page 5.89

120 T/HIS User manual Version 15.0, May 2018 5.15.2 X-AXIS AXIS LABELS The x-axis label may be set automatically or a user AUTOMATIC defined label can be specified.. When the and the axis label will be set to the x axis label of the first curve that is currently being plotted. The axis label may be turned on and off by toggling the Display Label button. In addition to displaying the axis labels an optional unit label can also be appended to the axis label. If the option to add a unit label is set to Automatic then the unit label displayed will depend on the current curves that are visible and the current unit system being used to display results c t i o n 5 (see 2 2 for more information on Unit Systems). S e . If the curves being displayed do not have the same axis unit then no unit label will be displayed. The unit label may be turned on and off by toggling the Add Units button. AXIS LIMITS The minimum and maximum x axis values can be controlled using a combination of the text box and the popup menu opposite. Autoscale The axis values will be set to the maximum and minimum values of all the curves that are currently being plotted. Locked The axis limit is set to the user defined value specified in the text box. If the curves are translated of scaled dynamically the limit will be reset. (see S e c t i o n 4 . 6 ) will reset the minimum and maximum values to AUTO . Note : The global command AUTOSCALE AXIS TYPE Lin arithmic scale. If a Log arithmic scale is selected a warning will The x-axis can be switched between a ear or Log be generated if an attempt is made to plot points that have -ve or zero X values and the points will be skipped. GRID SPACING S By default T/HIS will automatically set the grid line intervals for the x-axis when the grid is tuned on ( see c t i o n e 1 6 . 3 ). If the GRID option is changed from Automatic to Manual a grid Interval and Offset my be specified. If 5 . is set to 0.1 and the Offset to 0.02 then grid lines will be produced at 0.02, 0.12, 0.22 ... Interval the Page 5.90

121 User manual Version 15.0, May 2018 T/HIS UNITS Axis values can be displayed using 3 different formats Automatic Values are displayed using exponential format, all values are displayed as values of E0, E3, E6 etc. e.g 11.234E+03 Scientific Values are displayed using exponential format. e.g 1.123E+04 General Values are displayed as real numbers. e.g 11234.000 In addition to specifying the format, the number of decimal places can also be set between 0 and 9 and the colour and font used to display the values can be set. Page 5.91

122 T/HIS User manual Version 15.0, May 2018 Save Preferences to File c . i o n 6 . 6 S 1 t e Launches a popup to quickly save preferences to the oa_pref file. See Y-AXIS 5.15.3 The same options for LABELS, LIMITS, SCALE, GRID LINES and UNITS apply to the Y-AXIS as those available for the X_AXIS. 5.15.4 Second Y-AXIS Curves can be plotted in T/HIS using 2 different y-axis scales. When DOUBLE is selected using the check box in Y-AXIS the Y2 Axis menu the curve management window changes from to with an additional tick box for each curve that controls which curves are plotted against the second (right hand) y-axis. If only one y-axis scale is used it is not possible to meaningfully plot curves with different units or very different values. A second scale allows more information to be displayed at once, as demonstrated below. Second Y axis To identify which axis a curve is being plotted against the line disabled labels on the plot are automatically modified. Left hand Y axis Right hand y axis Page 5.92

123 User manual Version 15.0, May 2018 T/HIS All of the options that are available to control the label, scale and type of the y-axis are also available for the second y-axis except for the Grid option. NOTE : When the DOUBLE AXIS option is used with GRID lines a grid is only plotted for the left hand y-axis. Page 5.93

124 T/HIS User manual Version 15.0, May 2018 5.15.5 Legend 5.15.5.1 Curve Labels Show Prefix This option can be used to automatically add a prefix to each of the curve legends when a curve is plotted. This option has 3 settings Automatic If there is more that 1 model loaded in T/HIS then a prefix will automatically be added to any curves that have been read in from a model. Curves read in from other files will not be prefixed. On A prefix will automatically be added to any curves that have been read in from a model regardless of the number of models currently loaded in T/HIS. Curves read in from other files will not be prefixed. Off No prefixes will be added Prefix Format This option can be used to set the format used for the curve prefix. This option has 4 settings Model The model number will be used as the Number prefix. e.g (M1) Directory The directory name the model was read from will be used at the prefix. e.g. (/run1) THF File The root name of the THF file will be used as the prefix. e.g (sled_test) User A user defined prefix will be used. The Defined prefix can be defined on a model by o d e l M e n u . model case using the M The font, size and colour of the text used to display the legends can also be specified. Page 5.94

125 User manual Version 15.0, May 2018 T/HIS 5.15.5.2 Layout T/HIS has 4 different plotting formats as described below. The number of columns used to display the curve legends can also be set between 1 & 3. When multiple columns are used curve labels will automatically be truncated to fit the available space. Column List (default) This format fixes the size of the plotting area. The maximum number of curve legends that can be displayed will depend on the font family and size selected by the user and the number of columns. S E R L I N E S If any U have been defined then the area used to display the legend will be reduced so that the text does not cover the Automatic This format automatically adjusts the plot size to maximise the plotting area while still showing a maximum of 18 line labels. Any text entered using the E R L I N E S option will be U S ignored in this plotting mode. Page 5.95

126 T/HIS User manual Version 15.0, May 2018 Off OFF This format turns the display of the graph legend and maximises the plotting area by not showing any line labels. Any text entered using E R the I N E S option will U S L be ignored in this plotting mode. Floating This format maximises the plotting area and positions the legend on top of the graph area. The size of the legend can be modified by clicking with the left mouse button on the legend border/corner and dragging. The legend can also be moved by clicking with the left mouse button inside the legend and dragging. Page 5.96

127 User manual Version 15.0, May 2018 T/HIS 5.15.5.3 BACKGROUND This option can be used to alter the default background colour of the floating legend. By default the colour will be the same as the backgorund colour of the graph. As well as setting a different background colour for the floating legend a %age transparency can also be specified if the legend obscures any curves 5.15.5.4 USER LINES This option can be used to alter the default text that appears on the bottom right-hand corner of each plot. Text can be typed into any of the panels or they can be left blank. The of the text may be altered. If no text is specified the Size area used by the curve legends will be increased. p p e n d i x H for more details). The default values are read from the "preferences" file (see A 5.15.5.5 Save Preferences to File 6 c t i o n e . 6 . 1 Launches a popup to quickly save preferences to the oa_pref file. See S Page 5.97

128 T/HIS User manual Version 15.0, May 2018 5.16 DISPLAY Options DISPLAY The menu is shown in the adjoining figure. This menu controls the overall appearance of plots. As well as controlling basic things like the background colour and whether a grid is draw this menu also controls a number of default setting that are applied to all curves. These default setting may be overwritten for CURVE individual curves using the e e S e c t i o n 5 . MANAGER ) menu ( s 3 Changes to the Display options are only e S e c t i o e 3 . 5 ) s applied to active graphs ( n LEGEND... 5.16.1 e e S e c t i o n 5 . 1 5 . 5 ) This option will map the Legend settings panel ( s LINES 5.16.2 OFF switch for the lines between points to be drawn for all curves. The default is ON . The Default This is an ON / menu. CURVE CONTROL is used for all curves that have not had their widths explicitly set in the Line Width p e n The default line width can be specified in the "preferences" file (see i x H for more details). A p d 5.16.3 SYMBOLS / ON This is an OFF switch which controls whether symbols are plotted on top of the curves to help identify them. This option affects all the curves that are currently being used. If you wish to turn the symbols on for only some of the curves ON CURVE CONTROL menu should be used to turn the symbols off on the then this switch should be set to and the . curves for which you do not want symbols drawn on. The default is OFF is used for all curves that have not had a frequency explicitly set in the CURVE Symbols Frequency The CONTROL menu. This value controls how often a symbol is drawn on a curve. Page 5.98

129 User manual Version 15.0, May 2018 T/HIS 5.16.4 GRID OFF switch which determines whether or not grid lines are shown on the plot. The default is . The This is an / ON OFF button can be used to change the Grid Width can be used to change the width of the grid and axis lines. The COLOUR colour of the grid lines (see Section 2 for details on the available colours). . 5 6 . /de grid on turns grid lines on turns grid lines off /de grid off /de grid th 2 sets the grid thickness to 2 pixels p e p d i x H for more details). n The default grid width and visibility can be specified in the "preferences" file (see A 5.16.5 AXIS COLOUR can be used to change the width of the axis lines. The button can be used to change the The Axis Width 6 . 2 colour of the axis lines (see Section 5 . for details on the available colours). This option can be used to turn on and off the display of the graphs top axis Draw Top Axis Draw Right Axis This option can be used to turn on and off the display of the graphs right hand axis p p e n d i x H for more details). A The default axis width can be specified in the "preferences" file (see p e n d i x H for more details). The default settings for these 2 options cna also be specified in the "preferences" file (see A p 5.16.6 BORDER This is an switch which determines whether or not a border is drawn round the plot. The default is ON . The / ON OFF button can be used to change the colour COLOUR can be used to change the width of the border. The Border Width . 6 . 2 for details on the available colours). of the border (see Section 5 FIX LINE STYLES 5.16.7 OFF switch which resets the curve styles when they are plotted on the screen so that the curves cycle This is an ON / through the default T/HIS colours and styles as they are plotted. This will result in the first curve being plotted always . being white, the second red, the third green .etc regardless of their curve numbers. The default is OFF 5.16.8 Background . 6 . 2 for details on the available colours) or to set This option can be used to modify the background colour (see Section 5 a background image. By default the background colour is set to BLACK. Page 5.99

130 T/HIS User manual Version 15.0, May 2018 Image The IMAGE option can be used to display a background image behind a graph instead of a solid background colour. If the image dimensions do not match the graph window dimensions then the image can be scaled to fit or it can be tiled. Page 5.100

131 User manual Version 15.0, May 2018 T/HIS 5.16.9 Foreground 6 2 for details on the available colours). By This option can be used to modify the foreground colour (see Section . 5 . default the background colour is set to BLACK and the foreground colour is set to WHITE. Initially the grid, axes, border and labels are all set to the foreground colour. Swap 5.16.10 Foreground/Background This option can be used to swap the currently defined foreground and background colours. Display Max/Min 5.16.11 In versions of T/HIS prior to 9.4 the display of minimum and maximum curve values was controlled in the DISPLAY menu (see section 5 . 2 1 ). menu . In versions since 9.4 these options have been moved to the PROPERTIES Save Preference to file 5.16.12 6 c t i o n s . 6 . 1 . Launches a popup to quickly save preferences to the oa_pref file. See e Page 5.101

132 T/HIS User manual Version 15.0, May 2018 5.17 SETTINGS 5.17.1 Data Sources This menu allows the user to specify their preferred order of data sources for the different data types. Upon reading in models T/HIS will read all files regardless of these preferences. When T/HIS extracts data for plotting the source is dependent on that currently set in this menu. If you select a data component or entity that is not available in the first data source T/HIS will automatically try the other data sources in order until the combination is found. o d e l M a n a g e r can be used to see The M what source has been used for each item for models already read into T/HIS Page 5.102

133 User manual Version 15.0, May 2018 T/HIS 5.17.2 Files File Names By default the file filters in T/HIS are set to look for the file naming convention set for the LS-DYNA output files by the SHELL. This option can be used to swap the file filters back to the default LSTC naming convention. This option can be set e f e r e n c e F i l in the P r e LSTC File ARUP name name d3thdt Time history "jobname".thf xtfile Extra Time "jobname".xtf history File Output H The , 3 m s C l i p , A S I , T H I V , T T I I C Automotive injury criteria functions and R operator function can all send their R E output to a file as well as to the screen. These options can be used to select which functions send output to a file and to specify a Root Filename that is used for all of the output files. The Root Filename r e f e r e n c e F i l e P can be set in the Page 5.103

134 T/HIS User manual Version 15.0, May 2018 5.17.3 General Curve Operations U M O T I V E filters are A T All of the O designed to filter curves using seconds as the time unit. This option can be used to automatically convert the x-axis values of any curves from milliseconds to seconds before applying one of the filters. If a curve is automatically converted then the output curve is also automatically converted back into milliseconds. This f e r option can be set in the n c e F i l e P r e e T O M O T All of the V E filters require A U I curves with constant time intervals. This option can be used to specify a default time interval that will be used to automatically regularise a curve before it is filtered. and 3 m s C l C p I By default the H i functions calculate and report a value to the screen. These options can be used to make T/HIS display the peak values and the time widows they occur over. These e e e r e n c f F i l e r P options can be set in the At present 2 different methods are used to calculate the VC injury criteria for the ECER95 and IIHS regulations (see for more details ). This e d i p E n p A x option can be used to set the default value. This option can be set in the e f e r e n c e F i l e P r By default T/HIS uses 6 colours (White, Red, Green, Blue, Cyan and Magenta) for any curves that have not had a colour explicitly defined for them. Curves 1,7,13... will be White, 2,8,14... will be Red. This option can be used to change the default number of colours T/HIS uses. Use the default 6 colours Default Use the first 13 colours Extended No Grey Use all 30 predefined colours except the 3 grey ones Use all 30 predefined colours plus any user defined ones. Full The default value for the curve palette can also be specified in the "preferences" file (see A e n d i x H for more p p details). Page 5.104

135 T/HIS User manual Version 15.0, May 2018 5.17.4 Layout Save Settings This option can be used to save a T/HIS settings file which can be reloaded later. The settings file uses the same syntax as a FAST-TCF script except it only contains setup commands. layout and The settings file can contain all of the commands required to reproduce the current page and graph layout or a subset of the commands. Page 5.105

136 T/HIS User manual Version 15.0, May 2018 Reload Settings This option can be used to reload a previously saved settings file. In addition to reloading a file interactively a settings file can also be specified on the m a n d c o m e n i l -set= filename r e f e r e n c e F i l e or via the P this*settings_file: filename Page 5.106

137 User manual Version 15.0, May 2018 T/HIS 5.18 MEASURE This menu can be used to make measurements between curve points and/or screen points. It can also be used to annotate graphs. Each graph can contain multiple measurements and annotations. Measurements can be made between curve and/or screen points and can be made between different curves. Single points can be measured too. Annotations can be made on curve or screen points. 5.18.1 Measure Use this option to pick points on the graph to measure between. Page 5.107

138 T/HIS User manual Version 15.0, May 2018 Point Types Use the popups to select the point type to measure to/from. Label If you specify a label this will be displayed on the measurement. Delete This will delete the current measurement. 5.18.2 Annotate Use this option to make annotations on the graph. Point Type Use the popup to select the point type to annotate on. Label This is the annotation that will be displayed on the graph. Delete This will delete the current annotation. Page 5.108

139 User manual Version 15.0, May 2018 T/HIS 5.18.3 Format These options can be used to control the display of the measurements and annotations. Values Measurements can be displayed with both the X and Y values, just the X value, just the Y value or neither. If only one of the values is shown the line between the two points will be drawn like so: Text The font, font size and colour of the values can be selected. Background To make it easier to read the values a background can also be specified. In addition to specifying the background colour a transparency value can be used to control the visibility of curves under the text. Border and Border Colour Specify a border and border colour to be added around the value. Symbols The symbols drawn on the measurement points can be turned on/off. The size of the symbol can also be specified. Page 5.109

140 T/HIS User manual Version 15.0, May 2018 Number Format Specify the format of the values displayed on the graph. Page 5.110

141 T/HIS User manual Version 15.0, May 2018 5.19 Curve Groups This panel can be used to create and modify curve groups. T/HIS can contain an unlimited number of curve groups each of which can contain any curve. Curve groups can be used as input to most T/HIS functions that require one or more input curves e c t i o n 5 . 0 for more details) (see S Each curve group should be given a unique name. 5.19.1 Create This option can be used to create a new curve group. By default the group will be called "Curve_group_#" where "#" is the curve group number if an alternate name is not specified. Page 5.111

142 User manual Version 15.0, May 2018 T/HIS 5.19.2 Modify This option can be used to modify the contents of an existing curve group or it’s name. When a curve group is selected any curves that are already defined in the group are highlighted in the curve list. u t o m a t i c curves groups can not The contents of A be modified as T/HIS automatically adds and removes curves from automatic groups. Curves that belong to an automatic curve group are highlighted in yellow. The name of an automatic curve group can be changed. Page 5.112

143 User manual Version 15.0, May 2018 T/HIS 5.19.3 Automatic By default T/HIS will automatically create a curve group for each model that is read in and will add any curves read in from that model into the curve group. This option can be used to create other "automatic" curve groups. The default - one group is created for each model. Model ID Entity Type This option will create one group for each Entity type (Modal, Node, Solid etc) that data is read from. If data is read from multiple models then a single group for each entity type will be created containing curves from multiple models. Component This option will create one group for each component (Node X displacement, Contact X Force etc), that data is read from. If data is read from multiple models then a single group for each component Name will be created containing curves from multiple models. The component groups can be named using either the component name (Disp X, Vel X...) or the component name and the entity type (Disp X - Node, Vel X - Node) Curve File If curves are read in from curve files (.CUR or CSV) then this option will create one group for the 1st curves read form each file, a second group for the 2nd curve read from each file and so on. Index Multiple options can be selected at the same time. This option will create and update the contents of automatic curve groups if the options are Update Groups changed. p p e n d i x H for more details). The following preference options can be used to change the default options, (see A group_by_model group_by_type group_by_component group_by_file_index component_group_name Page 5.113

144 T/HIS User manual Version 15.0, May 2018 5.20 GRAPHS This panel can be used to create additional graphs within T/HIS. In addition to creating graphs this menu can also be used to control the layout of the graphs and to set up pages of graphs within T/HIS. c t i See n 3 . 0 for more details. S e o Save Preferences to File Launches a popup to quickly save preferences to the 6 c t i o n e . 6 . 1 oa_pref file. See S Page 5.114

145 T/HIS User manual Version 15.0, May 2018 5.21 PROPERTIES This menu can be used to display additional curves properties. Minimum and maximum curve values can be highlighted for each curve and the value can also be displayed. In addition to displaying the value on the curve the values can also be added automatically to the curve label in the graph legend. 5.21.1 Curves Curves (Off) This option will turn off the display of all minimum and maximum values. Page 5.115

146 T/HIS User manual Version 15.0, May 2018 Curves (Summary) This option will display a single minimum/maximum value from all curves currently displayed.. The following properties can be displayed Maximum Mark the maximum value value with a cross Display the maximum Display value Maximum Minimum Mark the minimum value value with a cross Display Display the minimum value Minimum Curves (All curves) This option can be used to select the properties that are displayed for each individual curve. When this option is selected the display of injury criteria (HIC,HICd etc) for curves can also be selected. Page 5.116

147 User manual Version 15.0, May 2018 T/HIS 5.21.3 Format This option can be used to control the display of the minimum/maximum values on the screen. Text The font, font size and colour of the values can be selected. Either a single colour can be used for all the values or the values for each curve can be coloured using the same colour as the curve. Background To make it easier to read the values a background can also be specified. In addition to specifying the background colour a transparency value can be used to control the visibility of curves under the text. Border and Border Colour Specify a border and border colour to be added around the value. Connecting Line This option will draw a line connecting the value with the point it relates to on the curve. The connecting line is drawn using the same colour as the border. Value The values can be displayed showing just the Y axis value or with both the X and Y axis values. If both values are displayed they can either be displayed separated by a comma or one above the other. Page 5.117

148 T/HIS User manual Version 15.0, May 2018 Number Format The values can be displayed using 3 different formats Values are displayed using exponential format, all values are displayed as values of E0, E3, E6 etc. Automatic e.g 11.234E+03 Values are displayed using exponential format. Scientific e.g 1.123E+04 Values are displayed as real numbers. General e.g 11234.000 Decimal Places In addition to specifying the format, the number of decimal places can also be set between 0 and 9. 5.21.3 Legend This option can be used to automatically added curve properties to the curve labels in the legend area. The following curve properties can be added to each curve label Maximum value Minimum value Average value Injury Criteria (HIC, HICd etc) Other options Turns off the Off display of curve properties in the legend Append Add the values to the same line as the curve labels in the legend 2nd Display the values using a second line Line for each curve in the legend The format of the numbers added to the curve labels is the same as that used to display values on the curves. Page 5.118

149 User manual Version 15.0, May 2018 T/HIS 5.21.4 Positioning Values By default T/HIS will automatically position minimum and maximum values to the right of the point they apply to. If the default location of the text obscures other curves then the position can be changed by clicking on the value with the left mouse button and then dragging the value to a new position. If dynamic viewing is used to either zoom in or translate the curves after a value has been moved to a new position then it will maintain it’s new position relative to the minimum/maximum value location. As well as moving the minimum/maximum values the values used to display injury criteria like HIC and HIC(d) can also be moved. Page 5.119

150 T/HIS User manual Version 15.0, May 2018 5.22 UNITS From version 9.4 onwards T/HIS tries to keep track of the units for each curves X and Y axis. For every data component that T/HIS can read from an LS-DYNA results file one of the following basic units is stored for the curves X and Y axis. Time Rotation Energy Density Momentum Mass Flow Energy Rotational Velocity Density Work Stress Frequency Rotational Acceleration Temperature Length Strain Power Thermal Flux Force Area Displacement Force per unit width Velocity Volume Moment Moment per unit width Acceleration Mass Pressure Q Criterion Viscosity Thermal Diffusivity Vorticity Vector Potential Magnetic Flux Vector Electric Field Vector Current Conductivity When a curve operation is carried out on curve which has either the X or Y axis unit defined the units for the output curve(s) are also calculated. If a curve operation is carried out using 2 or more input curves with different units and the result is a curve with inconsistent units then the units are set to zero If one of the inputs is a constant then it assumed to be unitless. Input 1 Input 2 Operation Output Add Velocity (m/s) Velocity (m/s) Velocity (m/s) Add Displacement (m) Velocity (m/s) Unknown Constant Velocity (m/s) Velocity (m/s) Divide Displacement (m) Divide Frequency (1/s) Velocity (m/s) Velocity (m/s) Velocity (m/s) Constant Add Velocity (m/s) Divide Velocity (m/s) Constant Velocity (m/s) - Differentiate Acceleration (m/s^2) 5.22.1 Models By keeping track of the X and Y axis units for each curve T/HIS can now convert results from one unit system to another. For each model one of the following 6 unit systems can be defined. Units Name U1 m, kg, seconds (SI) U2 mm, Tonnes, seconds U3 mm, kg, milli-seconds mm, gm, milli-seconds U4 U5 ft, slug, seconds U6 m, Tonnes, seconds Page 5.120

151 User manual Version 15.0, May 2018 T/HIS In addition to specifying a unit system for each model a separate unit system can also be selected to use to display results. If the model unit system and the display unit system are different then T/HIS will automatically calculate the correct factors to apply to the X and Y axis as the curve data is read from the file (All curves are stored inside T/HIS using the currently defined Display unit system). 5.22.2 Labels This option will display the labels that will be used for each of the built in units. Each Unit System has it’s own set of labels which can be modified if required. The default labels for each unit system are shown below. Page 5.121

152 T/HIS User manual Version 15.0, May 2018 U4: U1: m,kg,s U5: ft,slug,s U6: m,T,s U2: mm,T,s U3: mm,kg,ms mm,gm,ms s s s ms s Time ms mJ mJ J Energy ft lbf J kJ ft lbf mJ Work kJ J mJ J K K Temperature K K K K ft m mm mm mm Displacement m Velocity ft/s m/s m/s mm/s mm/ms mm/ms mm/ms^2 ft/s^2 m/s^2 Acceleration m/s^2 mm/s^2 mm/ms^2 Radians Radians Radians Rotation Radians Radians Radians Rotational Radians/s Radians/s Radians/s Radians/s Radians/s Radians/s Velocity Radians/s^2 Radians/s^2 Radians/s^2 Radians/s^2 Radians/s^2 Rotational Radians/s^2 Acceleration mm mm ft m m Length mm mm^2 mm^2 m^2 m^2 Area mm^2 sq ft mm^3 m^3 mm^3 cu ft mm^3 m^3 Volume Mass slug T kg T kg gm kg mm/ms gm mm/ms ft slug/s T m/s Momentum kg m/s T mm/s T/mm^3 kg/mm^3 slug/cu ft T/m^3 Density kg/m^3 gm/mm^3 kN/mm^2 lbf/sq ft kN/m^2 N/mm^2 N/mm^2 Stress N/m^2 - - - Strain - - - N kN N lbf kN N Force Nmm kNmm Nmm ft lbf kNm Moment Nm N/mm^2 N/m^2 lbf/sq ft kN/m^2 kN/mm^2 Pressure N/mm^2 J/mm^3 J/m^3 kJ/mm^3 Energy Density mJ/mm^3 mJ/mm^3 ft lbf/cu ft gm/ms T/s kg/ms slug/s Mass FLow kg/s T/s kHz Hz Hz Frequency Hz Hz kHz W ft lbf/s kW kW mW W Power kW/mm^2 Thermal Flux lbf/ft kW/m^2 W/m^2 mW/mm^2 W/mm^2 N/m kN/mm N/mm lbf/ft kN/m Force per unit N/mm width Nm/m kNmm/mm Nmm/mm Moment per unit kNm/m ft lbf/ft Nmm/mm width kg/m s kg/mm ms gm/mm ms slug/ft s T/m s Viscosity T/mm s m^2/s mm^2/s mm^2/ms Thermal ft^2/s m^2/s mm^2/ms Diffusivity Radians/s Radians/ms Radians/s Radians/s Radians/s Vorticity Radians/ms 1/ms 1/s 1/s 1/s 1/ms Q Criterion 1/s A A A Current A A A T mm/A s^2 kg mm/A ms^2 gm mm/A ms^2 slug ft/A s^2 T m/A s^2 kg m/A s^2 Vector Potential kg/A s^2 T/A s^2 kg/A ms^2 Magnetic Flux slug/A s^2 T/A s^2 gm/A ms^2 Vector T mm/A s^3 kg mm/A ms^3 gm mm/A ms^3 slug ft/A s^3 T m/A s^3 Electric Field kg m/A s^3 Vector A^2 ms^3/gm A^2 s^3/T Conductivity A^2 ms^3/kg A^2 s^3/T A^2 s^3/kg A^2 s^3/slug mm^3 mm^3 m^3 ft^3 m^3 mm^3 If a curve has a user defined unit or if after a curve operation one of the curve axis units is not one of the basic units that T/HIS knows about then T/HIS will build a label from the currently defined length,mass,time,temperature and angle labels. If for example a velocity/time curve is multiplied by another velocity time curve then the Y axis will have units of Velocity^2. If the current display unit system is U1 (m,kg,seconds) then the unit label for the curves y axis will be "m^2/s^2". Page 5.122

153 T/HIS User manual Version 15.0, May 2018 5.22.3 Curves This option can be used to display the unit information for each curve. By default the unit system for each curve is displayed but his can be changed to show either the X or Y axis unit using the popup menu. Setting the Unit System for a Curve If the unit system for a curve has not been defined then it will be displayed as "Undefined" and a popup menu will be available that can be used to select the correct unit system. If the selected unit system is different to the unit system currently being used to display results then the curve values will automatically be converted to the current display unit system. Note : Once the unit system for a curve has been defined it can not be changed. Page 5.123

154 T/HIS User manual Version 15.0, May 2018 Setting the Axis Units for a Curve The X and Y axis units of a curve can be defined or changed at any time. The popup menu contains all of the basic Unit types that T/HIS knows about plus an option to setup a user defined unit. To create a user defined unit for a curve the unit should be defined in terms of it’s basic properties. The values for current and mass, length, time, angle, tempetrature should be the powers that are used to describe the unit in terms of it’s fundamental dimensions. Some examples of common units defined using this method are shown below. Unit Angle Temperature Current Mass Length Time 0.0 1.0 0.0 0.0 0.0 0.0 Time 1.0 0.0 0.0 0.0 0.0 Displacement 0.0 1.0 0.0 0.0 0.0 -1.0 Velocity 0.0 1.0 -2.0 0.0 0.0 0.0 Acceleration 0.0 -1.0 -2.0 0.0 0.0 0.0 1.0 Stress Page 5.124

155 User manual Version 15.0, May 2018 T/HIS 5.23 The Javascript Interface 5.23.1 Introduction Javascript is a freely available scripting language that is normally found performing the "work" behind interactive web pages, however its syntax and structure also make it an excellent tool for providing an externally programmable interface to programmes in general. Within T/HIS it is implemented as an Application Programming Interface (API) which provides a range of functions that allow you to edit and create curves, open windows, generate plots, and so on. This is written in a very simple and non-intimidating way, with relatively few functions, that should be easy for non-programmers to use. Anyone familiar with C or shell script programming will find existing Javascripts are instantly readable, and can be given minor edits without further ado. For those who are more ambitious a good guide to the language is " Javascript, A definitive Guide " by David Flanagan, published by O’Reilly, ISBN 0596101996. The sections below describe how to run Javascripts in T/HIS, and summarise its Javascript API. For details of the API and its functions, and also some examples, see the n d i x J A p p e 5.23.2 Using Javascript in T/HIS. compiled Human-readable Javscripts need to be , meaning turned from something human-readable into a set of instructions that a computer can understand; and then in their compiled form. They can be changed and rerun in run their modified form at any time without having to exit and re-enter T/HIS, making the "write, test, modify, re-test" development cycle very quick and easy. 5.23.2.1 Compiling and Running a script Will both compile and run the script unless it contains syntax errors, in which case it stops with an error Run message when compilation fails. Only compiles the script, reporting any errors found, and does not run it. Check Encrypt A script can be encrypted so that the source code is hidden but the script can still be run (when compiling and running the script T/HIS decrypts the file in memory). Once encrypted the source code cannot be retrieved by an ordinary user so make sure that you keep the original file somewhere safe. As a last resort contact OASYS Ltd who can decrypt the script if required. If a script is split up into separate files by Use the files are all combined together into the main file before encrypting. If a script is split up into separate files by Use the files are all combined together into a single file. This Merge may be useful if you want to give the script so someone else and you do not want to have to give lots of different files. a D e to debug the script. Starts the JavaScript debugger, J Debug Memory size r b a g e is the memory allocated for garbage collection in the JavaScript engine. Please see the g a l l e c t i o n s e c t i o n for more details. c o 5.23.2.2 File encodings for scripts Version 10.0 of T/HIS introduced the ability for unicode text to be used on widgets created in a script. Previous versions of T/HIS only supported English text so the default ASCII encoding was used for script files (this is still the Page 5.125

156 T/HIS User manual Version 15.0, May 2018 default encoding for script files). If you want to use unicode text in widgets then you must use a file encoding that is capable to representing the unicode popup allows you to change the file encoding used when reading the script File encoding ’chracters’ you require. The file. T/HIS supports the following file encodings: Encoding Description Default ’ASCII’ encoding LATIN-1 Taiwan/Hong Kong (traditional) BIG5 EUC-CN Extended unix code (Simplified Chinese) EUC-JP Extended unix code (Japanese) Extended unix code (Korean) EUC-KR Chinese (simplified) GB GBK Chinese Chinese ISO-2022-CN ISO-2022-CN-EXT Chinese (extended) Japanese ISO-2022-JP ISO-2022-JP-2 Japanese (extended) Korean ISO-2022-KR JOHAB Korean SHIFT-JIS Japanese Should NOT have a byte order mark (BOM). UTF-8 UTF-16 Should have a byte order mark (BOM). If not present assumes big endian UTF-16LE Little endian with or without byte order mark (BOM) Big endian with or without byte order mark (BOM) UTF-16BE Should have a byte order mark (BOM). If not present assumes big endian UTF-32 Little endian with or without byte order mark (BOM) UTF-32LE UTF-32BE Big endian with or without byte order mark (BOM) Please contact Oasys Ltd if you have problems or require another encoding to be supported. To show the unicode text the appropriate font must be used. This can be set using the preferences this*cjk_windows_font . this*cjk_unix_font and 5.23.2.3 Dealing with errors in scripts Script errors come in two forms: Syntax Are mistakes of Javascript grammar or spelling, resulting in error messages during compilation. errors These are easy to detect and correct since the line number and offending syntax are both described by the compiler. The script needs to be edited to correct the problem and then recompiled. Sometimes several iterations of the compile/edit cycle are required to eliminate all errors from a script. Page 5.126

157 User manual Version 15.0, May 2018 T/HIS Run-time Are errors of context or logic in scripts that are syntactically correct, and thus have compiled, but errors which fail at some stage when being run. A typical example of a run-time error is an attempt to divide a value by zero, yielding the illegal result infinity. More subtle errors involve passing an invalid value to a function, accessing an array subscript that is out of range, and so on. The T/HIS Javascript API has been written in such a way that it handles "harmless" run-time errors by issuing a warning and continuing execution, but that more serious errors which could result in the wrong answers being generated issue an error message and terminate. 5.23.2.4 Setting the Garbage Collection Threshold Size (This is an advanced topic, and you don’t need to understand it.) JavaScripts execute inside a memory "arena", allocated dynamically from the operating system, which grows in size as storage is requested within the script. This growth occurs due to requests for "new" variables within the script and also when API functions allocate and return values and objects, and it is limited only by what the operating system can deliver. The nature of JavaScript means that objects frequently become redundant, and it is wasteful not to reuse the storage that they occupy, therefore there is a "Garbage Collection" process running behind the scenes which periodically checks storage and releases that which is no longer needed. This process is automatic and hidden from the user, it just "happens". However Garbage Collection is quite a CPU-hungry process, so it is only carried out periodically when a certain threshold is reached. This can sometimes be observed during script execution as a periodic "pause for thought", and if you are monitoring memory usage with a system tool you may see it drop during these pauses. Clearly this threshold value must be large enough not to trigger excessively frequent (and costly) garbage collections, while at the same time not being so large that scripts build up large amounts of excess memory to the detriment of the rest of the programme. The Memory size value in the JavaScript panel is the amount of memory allocated for garbage collection. Every time a new object, array, string or double precision number is used a garbage collection ’thing’ is also allocated. The Memory NOT the total memory for the script. The total memory for size is the total memory for these ’garbage collection things’, the script could be significantly higher than this value. e.g the memory required for a Model object could be several kbytes but the memory for the ’garbage collection thing’ for the Model object will something like 10 bytes for a 64bit operating system. (normally Memory Size When the memory used for garbage collection ’things’ reaches a significant proportion of about 2/3) then garbage collection will take place to try to reclaim memory. If no memory can be reclaimed and the then the script will terminate with an error. total memory used for garbage collection reaches Memory size If your script has to retain a large number of objects, arrays, strings etc in memory then you may have to increase the Memory size preference or adding value for . This can also be done using the this*javascript_memory_size m a special m y e o m o e n t at the top of the script. m r c To recap: not limit the memory the script can use, that is limited only by the operating system. • This threshold does • It sets the memory for Garbage Collection ’objects’. • Scripts which allocate a lot of memory, and which exhibit frequent pauses, may run faster with a larger value. • ... and finally: If you don’t understand this topic don’t worry. Most scripts will run quite happily with the default value, and you can ignore this setting unless they appear to be struggling, in which case try raising it. (As good an approach as any is to keep on doubling this value until the script works, but don’t use very large sizes unnecessarily.) Page 5.127

158 T/HIS User manual Version 15.0, May 2018 5.23.2.5 Assigning Javascripts to Shortcut Keys If a script is to be run repeatedly it can be convenient to set up a short-cut to it. From within the JavaScript menu ths script can be assigned to one fo the 12 function keys, alternativly the JavaScript can be o r t c assigned to any key using the t m e n u . S h u 5.23.2.6 Maintaining a library of Javascripts It is also convenient to have a library of scripts in a defined location. By default T/HIS looks in $OA_INSTALL/this_library/scripts , but you can define a different directory by setting the preference: this*script_directory: some_different_directory_name In the your oa_pref file. All scripts found in the relevant directory will be listed in the Javascript panel, as shown in this example. 5.23.2.7 Using the "description:" comment at the top of a script to identify its purpose. To help to identify scripts special comments are searched for in the top 10 lines of each script, and if description: Page 5.128

159 User manual Version 15.0, May 2018 T/HIS is found, for example the comment line: // description: Some description of the script’s purpose Then the description line is shown as hover text when the mouse is placed over that filename. In the example above the princ2d " " script has the line // description: Colour curve by model number 5.23.2.8 Using the "name:" comment at the top of a script to change its name Normally the name shown for a script will be its filename, stripped of any leading pathname and trailing ".js" extension. name: However if the string is found in the first ten lines of the script, then the following name will be used instead. For example the line: // name: Colour By Model Colour By Model " in tha Javascript panel. This does not affect Will result in the script appearing with the name " the actual name of the script, only the name on its library button. 5.23.2.9 Using the "memory:" comment at the top of a script to change the required memory m o r y r e q u i r e d f Sometimes the r g a r b a g e c o l l e c t i o n needs to be changed. m e o is found in the first ten lines of the script, then the size given will be used for the memory If the string memory: (unless the size in the memory textbox is larger than this value). For example the line: // memory: 50 Will result in the script using 50Mb for garbage collection memory. 5.23.3 Running a Javascript in "batch" mode. All the above assumes that Javascripts will be run interactively from the user interface, however it is also possible to run a script in "batch" mode using the command line interface. The relevant command-line commands are: /JAVASCRIPT - +- COMPILE Compiles and checks the script, but does not run it. +- EXECUTE (Re)compiles and runs the script Resets the Garbage Collection threshold to MBytes +- MEMORY To run a Javascript from batch these commands need to be placed in a command file and run using the command line " option. For example the command file might be: -cf= " command filename ... some other commands /JAVA EXEC my_script.js ...some further commands And the command line required to run T/HIS might be something like: analysis_name $OASYS/this10.exe -d=default -cf= -exit command_file Obviously multiple script invocations may be placed in a command file. For more information see: m m a n d a n d S e s s i o n f i l e s Describes command files, and explains how to create and use them o C e I S c o m m a n d l i n H a r g u m e n t s Describes the various command line arguments, and how to use them T / Page 5.129

160 T/HIS User manual Version 15.0, May 2018 5.23.4 Running a Javascript from within a FAST-TCF script JavaScripts can also be run from within a FAST-TCF script using the "javascript" option javascript "E:\javascripts\new_function.js" Within a FAST-TCF script curves are usually accessed via curve tags. If a JavaScript is used within a FAST-TCF script it is recommended that the function is used to access existing curves. If a new curve is Curve.GetFromTag() created by a JavaScript within a FAST-TCF script then the new curve can be accessed within the FAST-TCF script using the "tag" parameter of the curve creation function new_curve = new Curve(id,tag,label,x-axis label,y-axis label); If a tag is not specified in the curve creation function ); new_curve = new Curve(id then a curve tag will be generated automatically for the curve. The 1st curve created within the script will be tagged ", the 2nd " curve_js_2 " ... curve_js_1 " 5.23.5 The T/HIS Javascript API p p e n d i x J . All of the T/HIS JavaScript API functions are described in detail in A 5.23.6 Examples By far the easiest way to learn Javascript is by example and, more specifically by modified existing scripts to do what you want. $OASYS/ programme_ library/examples directory (for The software comes supplied with examples in the ) and you are free to use and modify these files for your own T/HIS $OASYS/this_library/examples purposes. Page 5.130

161 User manual Version 15.0, May 2018 T/HIS 5.24 Datum Lines Datum lines can be added to graphs to show limits and reference curves. Unlike normal curves DATUM lines are not used to calculate graph limits when auto scaling and are not shown in the curve legend. Each graph can contain multiple DATUM lines, all DATUM lines are drawn in the order they have been defined before any curves are plotted. 5.24.1 List This option lists any DATUM line definitions that have been created. This menu can also be used to select which DATUM lines appear on each graph. Each DATUM line can appear on more than one graph. A range of DATUM lines can be added/removed from graphs by selecting the first line/graph combination and then holding down SHIFT while selecting the second line/graph. Page 5.131

162 T/HIS User manual Version 15.0, May 2018 Clicking on any of the DATUM line definitions will highlight it in blue and display a popup menu containing the following options. Edit the selected DATUM line definition. This option will display the CREATE/EDIT menu. Edit Add to All Graphs Add the selected DATUM line definition to all the currently defined graphs Remove the selected DATUM line definition from all the currently defined graphs Remove From All Graphs Make a copy of the selected DATUM line, the original definition will be deleted when the Move Datum copy in inserted. Copy Datum Make a copy of the selected DATUM line. Insert the previously copied/moved DATUM line definition before the selected DATUM Insert Before line. Insert After Insert the previously copied/moved DATUM line definition after selected DATUM line. Delete This will delete the selected DATUM line. Page 5.132

163 User manual Version 15.0, May 2018 T/HIS 5.24.2 Create/Edit Each DATUM line must be defined with a unique acronym that is used to identify it in FAST-TCF scripts. The acronym shouldn’t contain any spaces. An optional label that is displayed on the graph next to the DATUM line can also be defined. As well as defining the font, size and colour for the label the position of the label relative to the DATUM line can also be set. DATUM lines can be defined as • Constant Y values • Constant Y2 values Constant X • values • Curves of X,Y points For a constant X,Y or Y2 value the line will automatically extend to the edges of the graph and the areas either side of the line can be filled using any of the standard T/HIS colours. If a DATUM line is defined using X,Y points then the areas between the curve and the graph axis can also be filled. As the DATUM lines are drawn in the order they are defined then care must be taken when applying fill colours Datum 1 Page 5.133

164 T/HIS User manual Version 15.0, May 2018 ++ Datum 2 == 5.24.3 Read This option can be used to read in a file containing DATUM line definitions that has previously been saved. All DATUM lines must have a unique acronym. When the file is read the user has the choice to: Delete any existing DATUM 1. line definitions before the file is read. 2. If a DATUM line in the file being read has the same acronym as an existing DATUM line then the existing definition will be overwritten. 3. If a DATUM line in the file being read has the same acronym as an existing DATUM line then the new definition in the file will be ignored. Page 5.134

165 T/HIS User manual Version 15.0, May 2018 The preference option this*datum_file: C:\datum\this001.dtm can also be used to define a default file containing DATUM line definitions that is read automatically when T/HIS starts p p e n d i x H for more details) (see A 5.24.4 Save This option can be used to save any DATUM line definitions to a file so that they can be reloaded and used in future T/HIS sessions. Page 5.135

166 T/HIS User manual Version 15.0, May 2018 Page 5.136

167 User manual Version 15.0, May 2018 T/HIS 6 Other Options 6.1 Tool Bar The tool bar is located across the top of the main T/HIS window and provides easy access to all of the main T/HIS menus from a series of drop down menus. In addition to the menus the drop down menus also allow a number of items to be changed dynamically and it provides a constant feedback of the cursor position within the graph area. t i o n S e Each graph window contains its own tool bar that provides a subset of the functions in the main toolbar (see c ). 2 6 . 6.1.1 File The File drop down menu can be used to access the following menus. e c t i o n 5 . 1 for more details. Read see S Write c t i o n 5 . 2 for more details. see S e S see Curve . t o n e i 3 for more details. c 5 Manager for more details. 4 e c t i o n 5 . S Model see Manager . e i o n 5 t 5 for more details Edit c see S This option is only available on PC’s and can be used to access Page Setup the standard Windows Page Setup menu. This option is only available on PC’s and can be used to access Print the standard Windows Print menu. Manual Displays this manual. 6.1.2 Graphs The Graphs drop down menu can be used to create new graphs and to change layout options. S e c t i o n 3 . 1 for more details. Create Create a new graph, see 1 t i o n 3 . c for more e Modify graph layout options, see S Options... details. This option can be used to automatically hide the tool bar, Auto-hide graph S e c t i o n 6 . 2 , at the top of each graph window. see tool bar Page 6.1

168 T/HIS User manual Version 15.0, May 2018 6.1.3 Plotting The Plotting drop down menu can be used to access the following plotting commands. c t i o n 4 . 1 for more details. Plot S see e 5 c o n 4 . i for more details. Zoom see S e t c t i o n 4 . 3 for more details. e Point see S see Autoscale S o n 4 . 6 for more details. e c t i 7 c i o n 4 . t for more details. Centre see S e 6.1.4 Functions The Functions drop down menu can be used to access all of the curve functions. e c t i o n 5 Automotive 1 1 for more details. see S . e t i o c 5 . 9 for more details. n Operate see S S Maths see o n 5 . t 0 for more details. e i c 1 e c t i o n 5 . 1 2 for more details. S Seismic see 6.1.5 Display The Display drop down menu can be used to access the Title/Axis and Display menus and to dynamically modify the appearance of graphs. This menu changes c t i o n 3 . 5 ). all of the currently active graphs (see S e . e t i o n 5 c 1 5 for more details. S Title/Axis see S e c t i o n 5 . 1 5 . 5 for more details. Legend see S e t i o n 5 . 1 6 for more details. see Display c 6 e i o n 5 . 1 t . 4 for more details. S c Grid Turns the gird on/off, see e c t i o n 5 . Symbols 6 . 3 for more Turns graph symbols on/off, see S 1 details. e c t i o n 5 S 1 6 . 2 for more details. Lines Turns graph lines on/off, see . for more e c t i o n 5 . 1 6 . 6 S Turns the plot border on/off, see Border details. S Sets the foreground colour, see Foreground 9 o 5 . 1 c . n for more t i e 6 details. e c t i o n 5 . 1 6 . 8 for more Sets the background colour, see Background S details. Swap Swaps the current foreground and background colours, see 6 e i o n 5 . 1 t . 1 0 for more details. c Fore/Back S S e c t i o n 5 . 1 5 . 5 . 2 for more Plot Format Set the current plot format, see details. Page 6.2

169 User manual Version 15.0, May 2018 T/HIS 6.1.6 Images The Images drop down menu can be used to save the current displayed graphs as an image in a number of formats. In addition to saving an image this menu can also be used to read in an image that is used as the background for each graph. 5 e c t i o n for . 8 . 1 S Capture the image as a bitmap or JPEG, see BMP, more details. JPEG... S e c t i o n 5 . 8 . 2 for more Postscript Generate a Postscript or PDF image, see details. This option can be used to set an image as the background for Background e c t i o n each graph, see . 8 . 3 for more details. 5 S Page 6.3

170 T/HIS User manual Version 15.0, May 2018 6.1.7 Options The Options drop down menu can be used to access all the following functions. S t i o n 5 . 7 for more details. see e Command File c 1 e i o n 5 . t 7 for Settings S Change data sources and other settings, see c more details. e c t i o n 5 . 1 FAST-TCF for Generate/playback FAST-TCF scripts, see S 4 more details. e c t i o n S . 4 . 4 for Convert Convert a LSDA binout file to ASCII, see 5 more details. LSDA>ASCII 6 S c t i o n e . 6 for more Edit Displays the preference editor, see details. Preferences Modify menu fonts, size and colours, see S e c Menu i o n 6 . 1 . 7 . 1 for t more details. Attributes Auto Update Turn on/off automatic update. Show Model Turn the model prefix on/off or set it to automatic, see S t i o n 5 . 1 5 . 5 . 1 for more details. e Prefix c Prefix Format Select the prefix format displayed for each model. This option can be used to set the format used for the curve prefix. This option has 4 settings Model The model number will be used as the prefix. e.g (M1) Number The directory name the model was read Directory from will be used at the prefix. e.g. (/run1) THF File The root name of the THF file will be used (sled_test) as the prefix. e.g User A used defined prefix will be used. The prefix can be defined on a model by model Defined n e l case using the e o u . M d M Turn on/off the display of curves when dragging axis borders Drag with curves and legends. On some slow machines the time taken to update the display when a large number of curves is displayed makes the dragging response too slow. This option will automatically turn off the display of curves while the dragging operation is active. Shortcuts Setup keyboard shortcuts for commonly used function, see . 5 for more details. 6 section Page 6.4

171 T/HIS User manual Version 15.0, May 2018 6.1.7.1 MENU Attributes This panel allows you to tune the visual attributes of the screen menus within T/HIS and save them if you wish. Page 6.5

172 T/HIS User manual Version 15.0, May 2018 Display Factor Lies in the range 0.5 to 2.0, default 1.0. Values < 1.0 reduce the apparent size of the screen so that menus and text become larger. Values > 1.0 act in the opposite sense. This is the simplest way of taking into account the display size. Font Size Sets the font size independently of the display scale, face which can be useful on wide-screen displays. The font typeface can also be changed. Font scaling By default text in menu interface buttons can be scaled downwards to a smaller font size (if one exists) if it is too long for the button. This shows more characters, but it can look messy when the user interface has a mixture of font sizes. Turning font scaling off prevents this happening, giving a more consistent appearance. (However it is generally better to adjust the Display Factor in order to find a menu scale that gives consistent font sizes.) Brightness Lies in the range 0.0 to 1.0, default 1.0. Controls the brightness of the menu interface only (it will not affect displayed graphics). Saturation Lies in the range 0.0 to 1.0, default 1.0. Controls the colour saturation of the menu interface. (Again it will not affect displayed graphics.) Left Handed The software uses mouse buttons and keyboard ’meta settings keys ( & ) in a handed way that is set up by default for right-handed use. It is possible to configure either or both for left-handed use. Save Settings Once you have adjusted the above to your taste you can save these settings in your ’oa_pref’ file for future use with the button. If you do not save settings they will be lost when this session exits. Save_Settings Page 6.6

173 User manual Version 15.0, May 2018 T/HIS 6.1.8 Quick Pick The Quick Pick menu can be used to perform many common curve operations using just the mouse. The current "Quick Pick" mode is displayed on the tool bar and can be changed using the popup menu. The current "Quick Pick" option can be applied to a single curve by selecting the curve using the left mouse button. Multiple curves can be selected by holding down the left mouse button and dragging out an area. Some functions can be undone using the middle mouse button. 6.1.8.1 Functions... . 9 , 5 . 1 0 , 5 . 1 1 and 5 . 1 2 ) This option can be used to select any of the curve operations (see Sections 5 that have a single curve as input. In addition to selecting a curve operation this menu can also be used to set the output curve for the curve operation to either the 1st free curve or to overwrite the input curve. This option can be applied to multiple curves but it can not be undone. 6.1.8.2 Blank... This option can be used to blank curves. The selected curves can be blanked in just the graph they were selected in, all the currently active graphs or all graphs. This option can be applied to multiple curves and it can be undone using the middle mouse button. Page 6.7

174 T/HIS User manual Version 15.0, May 2018 6.1.8.3 Unblank... This option can be used to unblank curves. The selected curves can be unblanked in all the currently active graphs, all graphs or a individual graph can be specified. This option can be applied to multiple curves and it can be undone using the middle mouse button. 6.1.8.4 Only... This option can be used to blank all curves except for the selected ones. The selection can be applied to just the graph they were selected in, all the currently active graphs or all graphs. This option can be applied to multiple curves and it can be undone using the middle mouse button. 6.1.8.5 Delete This option can be used to delete curves. It can be applied to multiple curves but it can not be undone. 6.1.8.6 Properties... c This option will display the current properties for a curve (see i o n 6 . 3 . 1 for more details). If multiple curves are S e t selected this option is only applied to the one with the lowest curve ID. 6.1.8.7 History... e c t i o n 6 . 4 for more This option can be used to view and edit the history of operations used to create a curve (see S details). 6.1.8.8 Edit... c t i o n 5 e 5 for more details). If multiple curves are selected This option can be used to select a curve for editing (see S . this option is only applied to the one with the lowest curve ID. 6.1.8.9 Edit Labels... e c t i o n 6 . 3 . 2 for more details) . If This option can be used to edit the label, title and axis labels for a curve (see S multiple curves are selected this option is only applied to the one with the lowest curve ID. Page 6.8

175 User manual Version 15.0, May 2018 T/HIS 6.1.8.10 Colours... This option can be used to change the colour of curves. This option can be applied to multiple curves and it can be undone using the middle mouse button. 6.1.8.11 Line Width... This option can be used to change the line width of curves. This option can be applied to multiple curves and it can be undone using the middle mouse button. 6.1.8.12 Line Style... This option can be used to change the line style of curves. This option can be applied to multiple curves and it can be undone using the middle mouse button. 6.1.8.13 Symbols... This option can be used to change the symbol style of curves. This option can be applied to multiple curves and it can be undone using the middle mouse button. 6.1.8.14 Edit Curve in PRIMER... c t i o n 6 . This option can be used to send the load curves in the linked session of PRIMER, see for more details. S e 7 6.1.8.15 Edit Entity in PRIMER... c t i o n e . 7 for more details. S This option can be used to send the curve entities in the linked session of PRIMER, see 6 6.2 Graph Tool Bar 6.2.1 Graph Selection . e i o n 3 t 5 for more details. This option can be used to make a graph active or inactive, see c S 6.2.2 Plotting l o t t i n g menu in the main toolbar with the exception that the settings This option provided the same functions as the P only apply to the graph in the window instead of all of the currently active graphs. 6.2.3 Display a s p l D y menu in the main toolbar with the exception that the settings This option provided the same functions as the i only apply to the graph in the window instead of all of the currently active graphs. Page 6.9

176 T/HIS User manual Version 15.0, May 2018 6.2.4 Auto_Blank The function can be used to blank and unblank curves in a Auto_Blank graph using either the TAB key or SHIFT+TAB. By default if you now press the TAB key in a graph T/HIS will automatically blank all the curves except for those belonging to model 1. If you press TAB a 2nd time you will just see the curve belonging to model 2, a third time model 3. When you reach the end of the models you have curves for pressing the TAB key loops back to model 1. If you press SHIFT+TAB then it goes the other way (model 3 > model 2 > model 1 > model 3 ...) Instead of blanking curves by model the behaviour of the TAB key can be changed. Models Default. Blanks curves by model ID. Blanks curves by component. e.g Node X Displacement > Node Y Displacement > Node Z Components Displacement > ... Blanks curves by entity type e.g. Whole Model > Parts > Nodes > Solids > ... Entity Types Blanks curves by ID. e.g Node 1 and Solid 1 > Node 2 and Solid 2 > ... Entity ID Component This is similar to Component except that it lumps all the displacement curves together then velocity so you get x,y,z and magnitudes. You will also get data for different entity types. So Types Energy would show things like Whole Model KE and Contact Energies. Blanks curves by surface or through thickness integration point. e.g Top > Middle > Bottom > Surface/Int Point Layer 1 > ... Curves ID’s Blanks curves by ID mode can be modified using the preference file (see Auto_Blank The default A n H i x p for more details) d p e this*auto_blank_mode: 6.2.5 AB This option can be used to turn and off the Auto Blank option. The default setting for this option can be modified p p e n d i x H for more details) using the preference file (see A this*auto_blank: Page 6.10

177 User manual Version 15.0, May 2018 T/HIS 6.3 CURVE INFORMATION Pressing the right mouse button while in the graphics window will display a popup menu listing the ID, label and the data source of the nearest curve. When data is read from either one of the LS-DYNA output files T/HIS will store the ID and type of the entity that the data applies to. If the curve label is modified this data will remain unchanged so that the curve source can still be identified. If a curve has been read in from another source then T/HIS will report the data source as being UNKNOWN If a curve is created from another curve using one of the T/HIS curve operations then the data source for the new curve will be copied from the original curve. If the operation uses more than one curve as input then the data source information will only be copied to the new curve if all of the input curves had the same data source. i t will open the curve editor for the selected curve whilst the colour, Line Width, Line d E style and Symbol pop-up menus allow the user to change these options for the curve (as T L E menu). Y can be done from the S 6.3.1 Properties... This option displays a number of properties for a curve including minimum and maximum values, average and RMS value. 6.3.2 Edit Labels... This option can be used to change the title, tag, line label and axis labels for a curve. Page 6.11

178 T/HIS User manual Version 15.0, May 2018 6.3.3 Functions... The functions popup menu can be used to access any of the curve operations that take a single curve as the only input. As well as applying an operation to a curve this menu can also be used to select between. • Overwriting the input curve with the output from each function • Writing the output to the 1st unused curve 6.4 Curve Histories ... Internally T/HIS knows about all of the operations used to create a curve and the order that the operations were applied. In addition to knowing the operations used to create each curve T/HIS also knows which curves were used as inputs to operations that created other curves. 6.4.1 Viewing When a curve is selected and the curve history is displayed a floating window will be displayed that shows all of the operations used to create a curve. In the example opposite 3 items were read in and then combined using the VEC tor operation. More information on each part of the curve history can be obtained by moving the mouse across each operation. If a curve operation has one or more inputs that are not curves then the hover text will display all of the inputs along with their values. Page 6.12

179 User manual Version 15.0, May 2018 T/HIS 6.4.2 Modifying As well as viewing the operations used to create a curve the operations can also be modified by right clicking on them. operation, the For a READ entity ID can be changed to any other ID of the same entity type. T/HIS will automatically check if results are available for the new ID and display a warning if they are not. As well as changing the entity ID the data component can also be modified by selecting a different component in the popup menu. If a curve operation has one or more inputs that are not curves then right clicking on the operation will display a popup menu that will allow all of the values to be modified. Page 6.13

180 T/HIS User manual Version 15.0, May 2018 As well as changing the inputs to existing curve operations it is also possible to change a curve operation to any other curve operation that has the same number of input curves. Right clicking on the popup symbol next to the name of the current curve operation will display a menu containing a list of all of the curve operations that are available which have the same number of input curves. If for example the current CLIP curve operation is then the popup menu of available operations will contain all of the other curve functions that have a single input curve. Page 6.14

181 User manual Version 15.0, May 2018 T/HIS 6.4.3 Inserting New Operations .New operations can be inserted into the chain of curve operations by right-clicking on one of the + symbols between the existing operations. The popup menu that is displayed will contain all of the curve operations that take a single curve as input and produce a single output curve. 6.4.4 Update Curve .If any of the operations used to create a curve are modified or if a new operation is inserted then this option can be used to automatically update the curve. T/HIS will automatically rebuild the curve using the updated set of curve operations and will replace the old curve with the new one. 6.4.5 Update Curve + Dependants This option will update the selected curve and any dependant curves. As T/HIS stores all of the operations used to create every curve it knows if a curve has been used as an input to any other curves. The selected curve will be automatically rebuilt and replaced with the new curve and then any curves that use the selected curve as an input will also be rebuilt and replaced. 6.4.6 List Dependants This option will display a list containing any curves that have been created which use the currently selected curve as an input somewhere in their chain of curve operations. Page 6.15

182 T/HIS User manual Version 15.0, May 2018 6.4.7 Reset Curve This option can be used to reset all of the curve operations used to create a curve if any of them have been modified. 6.5 Keyboard Shortcuts Some panels and actions can be accessed through pre-programmed shortcuts and from version 9.4 onwards the keys they are assigned to are customizable. From version 9.4 onwards a number of new pre-programmed shortcuts have been added, including the top menu panels and window layout options. In addition to these pre-programmed shortcuts Macros and FAST-TCF scripts can also be assigned to a key. A listing of the available shortcuts and the keys they are assigned to can be brought up by pressing the ’?’ key (by default) or accessing it through the Options top menu. This will bring up a panel, from which you may assign the shortcuts, Macros and FAST-TCF scripts to the keys. Note that upper and lower case letters can be assigned different shortcuts. A list of all the available pre-programmed shortcuts is given at the end of this section with their default key(s) if assigned. Page 6.16

183 T/HIS User manual Version 15.0, May 2018 At the top of the panel you will see the following buttons. Restores the shortcuts to their default keys, removing any shortcuts assigned by the user. Saves the shortcuts to the oa_pref file in the home directory. They are saved in the format "this*A_key: AUTOSCALE" where the first part defines which key the shortcut is assigned to and the second part is the shortcut being assigned. Each shortcut has a specific name to use in the oa_pref file, and a list is given below. When T/HIS is started this is read and the saved shortcuts are restored. Reloads the shortcuts from the oa_pref file in the home directory. Clears all the shortcuts on the panel. To assign a shortcut, right click on the key you want to assign it to. This will bring up a list of all available shortcuts in T/HIS as well as the option to assign Macros or FAST-TCF scripts. Page 6.17

184 T/HIS User manual Version 15.0, May 2018 To assign a Macros, FAST-TCF script or JavaScript a to a key, right click on "Macros...","FAST-TCF Scripts..." or "JavaScripts". This will bring up another popup from which you can select the Macro or FAST-TCF script. The popup will contain a list of Scripts that T/HIS has picked up from the $OASYS and home directory. If the script you want is not in this list you can browse for it by clicking on the folder icon. The listing of assigned keys is colour coded to easily distinguish between pre-programmed shortcuts (white), FAST-TCF scripts (light-blue), Macros (dark-blue) and JavaScripts (dark-green) Page 6.18

185 User manual Version 15.0, May 2018 T/HIS Pre-programmed Shortcuts: Defaults shown in bold, oa_pref name shown in brackets View Controls Autoscale Y axis (Y_AUTOSCALE) A/a - Autoscale (AUTOSCALE) Plot (PLOT) Plot (PLOT) [SPACE] - P/p - Z/z - Zoom (ZOOM) Zoom in (ZOOM_IN) "+"/"=" - Zoom out (ZOOM_OUT) "-"/"_" - Blanking R/r - Reverse curve blanking (REVERSE) Blank All (BLANK) B/b - U/u - Unblank all curves (UNBLANK) Menus Automotive Menu (AUTOMOTIVE_MENU) Command Files Menu (CFILE_MENU) Curve Properties Menu (PROP_MENU) C/c - Curve Menu (CURVE_MENU) Display Menu (DISPLAY_MENU) Curve Table (CURVE_TABLE) Edit Menu (EDIT_MENU) Groups Menu (GROUPS_MENU) Image Menu (IMAGE_MENU) FAST-TCF Menu (FAST_TCF_MENU) F/f - Macros Menu (MACROS_MENU) Maths Menu (MATHS_MENU) Operate Menu (OPERATE_MENU) Model Menu (MODEL_MENU) Page Layout Menu (PAGE_MENU) Preferences Menu (PREF_MENU) Read Menu (READ_MENU) Shortcut Menu (SHORTCUT) Settings Menu (SETTINGS_MENU) Seismic Menu (SEISMIC_MENU) Style Menu (STYLE_MENU) Title/Axes Menu (TITLE_MENU) Units Menu (UNITS_MENU) Write Menu (WRITE_MENU) Page 6.19

186 T/HIS User manual Version 15.0, May 2018 Page Layout Page Layout Tile Wide (TILE_WIDE) 1 - 2 - Page Layout Tile Tall (TILE_TALL) Page Layout Tile Cascade (CASCADE) 4 - 3 - Page Layout Tile 1x1 (LAYOUT_1X1) 5 - 6 - Page Layout Tile 3x3 (LAYOUT_3X3) Page Layout Tile 2x2 (LAYOUT_2X2) Miscellaneous Tidy Menus (TIDY_MENUS) T/t - G/g - Create a new graph Window (NEW_WINDOW) Swap to Quick Pick (QUICK_PICK) V/v - Change Curve Picking Group (CURVE_GROUP) Q/q - Previous Page PAGE UP - Next Page PAGE DOWN - Last Page HOME - First Page END - 0 - Change edit to next point (EDIT_NEXT) Copy Axis Settings (COPY_AXIS) 6.6 Preferences The Preference menu provides an interactive editor for setting options for T/HIS in the oa_pref preference p p e n d i x H for more details file (see A on the oa_pref file/options) The preferences editor reads an XML file that contains all possible preferences and their valid options, and allows you to change them at will. In this example the user is changing the background colour in T/HIS. Note that changes made in the Preferences editor will not affect the current session of T/HIS, they will only take effect the next time it is run. If you have write permission on the oa_pref file in the $OASYS directory you will be asked if you want to update that file, otherwise you will only be given the option of updating your own file in your $HOME / $USERPROFILE directory. For more information on the interactive preference editor see x e n d i p H . A p 6.6.1 Save Preferences Popup Page 6.20

187 User manual Version 15.0, May 2018 T/HIS The Save Preferences menu allows a means to quickly save graph properties straight to the oa_pref file. The popup works by reading the graph (defaults to Graph 1) properties to take preferences from. When a save button is pressed (Title, X Axis, Y Axis etc..), the menu will look for changes to the relevant preferences and print those preferences to the oa_pref file. For example, by pressing on "Display" it will save (most of) the options setup in the Display menu from the specified graph into your oa_pref file. Note that if a preference is a default value then it will not print this preference to the oa_pref file so that your oa_pref file will not be cluttered with redundant preferences. An exception to this rule are with some of the preferences associated with the "Global Preferences" button. This is located on the Display, Title/Axes and Graphs menus. 6.7 PRIMER: Sychronising with PRIMER From version 15 onwards T/HIS can be synchronised with PRIMER using a shared memory link. This means that a post-processing model that is open in T/HIS can have its corresponding keyword file open in PRIMER, and information can be exchanged between the two codes. By default no link takes place, but it can be opened in any of the following ways: A running T/HIS session starts a new PRIMER session • using the stipulated model. • A running PRIMER session starts a new T/HIS session using the stipulated model. and • Once a link is established, in either of the modes above, further models can be opened and linked at will. The link is symmetrical and bid-directional, with no concept of parent or child, and it can be closed at any time leaving both do at present is can’t codes running autonomously. What you to link an autonomous, already running, T/HIS or PRIMER session with another autonomous session. 6.7.1 The PRE panel Page 6.21

188 T/HIS User manual Version 15.0, May 2018 When running linked with PRIMER the Pre panel (invoked by pressing the PRIMER button) shows the current status of the link. In this example we have four models open in T/HIS, and in this example: Models 1 and 2 are currently open in PRIMER • • Model 3 is not open in PRIMER, but a keyword file has been found automatically. Model 4 is also not open in PRIMER, and T/HIS has • not found a keyword file automatically/ The file open/close options are Option Status of Action performed model T/HIS has found a keyword file Not linked automatically, add this model to PRIMER Not linked T/HIS cannot find a keyword file, browse for a filename manually Linked Model is linked with PRIMER session, disconnect it There is a corresponding Post panel in PRIMER, with the same layout and functionality. Effects of linking and unlinking models:In all cases: • Linking or disconnecting a model does not affect that model’s status in either programme, both T/HIS and PRIMER will continue to run normally. Models may be disconnected and reconnected at will. • • When a model is deleted in T/HIS it is implicitly disconnected in PRIMER, but will not be deleted from PRIMER. Similarly, if a model is deleted in PRIMER is will be disconnected from T/HIS, but not deleted. • The link logic attempts to keep model numbers the same in both PRIMER and T/HIS, however it is possible to defeat this by opening additional models in one programme but not the other. Doing so may cause the linkage to fail in some respects (so don’t do it!) The PRE panel can be opened or closed at will without affecting the status of linked models, it simply provides feedback about the current status and attributes of linked models. 6.7.2 Synchronising Operations Page 6.22

189 User manual Version 15.0, May 2018 T/HIS i c k P u c k commands Q Load curves and data can be exchanged across the link using the following methods. Like other i this may be set as the current operations, or selected from a menu of choices (as shown here) in response to a right click Edit Load Curve in PRIMER Select one or more curve to send load curve in PRIMER. The load curve edit window is launched in the linked PRIMER session. Edit Curve Entity in PRIMER Select one or more curves to call up the corresponding EDIT panel in PRIMER, so if for example you clicked on a curve that was an acceleration for a node you would get the node card in PRIMER or if you clicked on a contact force curve you would get the contact card in PRIMER. Page 6.23

190 T/HIS User manual Version 15.0, May 2018 Page 6.24

191 User manual Version 15.0, May 2018 T/HIS 7 FAST-TCF FAST-TCF CONTENTS 0 e r v i e w . O 7 v n 1 o d u c t i o n . 7 t I r d g G r a p h l a y o u t a n / s e l e c t i o n a 7 e . 2 P p u t s y n t a x t o l o a d o t h e r f i l e s 7 . 3 I n t p t f o r d a t a e x t r a c t i o n r e q u e s u s 7 4 I n . n t s 7 . 5 U i s r e T a g u C 6 . 7 v u r v e G r o u p 7 . 7 C s P r f o r m i n g F A S T - T C F c u r v e o p e r a t i o n s 7 . 8 e p s l y i n g e x t r a o p t i o n s t o d a t a r e q u e A t s 7 . 9 p S e t t i n g p r o p 0 r t i e s f o r c u r v e s 7 . 1 e t 2 S T - T C F I m a g e O u A p u t o p t i o n s 1 . 7 F 3 O u t p u t t i n g c u r v e p r o p e r t i e s t o t e x t f i l e s , v a r i a b l e s a n d R E P O R T E R . 7 1 1 F A S T - T C F C u r v e O u t p u t 7 . 4 5 . S T - T C F a d d i t i o n a l 7 F 1 A 7.0 FAST-TCF OVERVIEW FAST-TCF is a scripting language for T/HIS. It is designed to be editable and backward-compatible with previous versions of T/HIS. From version 9.2 FAST-TCF scripts can be recorded and played back in T/HIS. The FAST-TCF scripts are plain text files, and are therefore easy to edit and manipulate. 7.0.1 NEW FEATURES New Features for FAST-TCF version 11.0 Version 11 of T/HIS contains the following new FAST-TCF commands p o r t f o r D I S B O U T d a t a c o m p o n e n t • S u p t o t f o r P L L Y O U T d a r a c o m p o n e n t s p p u •S y l e _ m " c o m m •" n d f o r s e t t i n g c u r v e s t y l e s b y m o d e l s t a New Features for FAST-TCF version 10.0 Version 10 of T/HIS contains the following new FAST-TCF commands p p o r t f o r T R H I S T d a t a c o m p o n e n t s • u S d p r t f o r C P M _ S E N S O R o a t a c o m p o n e n t s u •S p w w i l d c a r d o p t i o n s f o r s p e c i f y i n g c u r v e t a g s •N e p u t i n g a r a n g e o f c u r v e s t o c u r v e f i l e •O u t New Features for FAST-TCF version 9.4 Version 9.4 of T/HIS contains the following new FAST-TCF commands p o r t f o r D B F S I d a p a c o m p o n e n t s • u S t p o r t f o r T P R I N T d a t a c o m p o •S e n t s u p n w p l o t s e t u p " c o m m a n d s •N e " t w r v e s t y l e o p u i o n s •N e c New Features for FAST-TCF version 9.3 Because of the multiple graphs and pages available in T/HIS 9.3 additional commands have been added to FAST-TCF 93 to define and position graphs and to generate multiple images containing one or more graphs. Because of these new commands version 9.3 FAST-TCF scripts generated by T/HIS can not be used in previous releases. e w c o m m a n d s h a v e b e e n a d d e d f o r g e n e r a t i n g a n d p o s i t i o n i n g m u l t i p l e g r a p h s a n d p a g e s . • N a w m m a n d s f o r g e n e r a t i n g i m a g e s c o n t o i n i n g m u l t i p l e g r a p h s a n d p a g e s . c •N e w v a r i a b l e s h a v e b e e n a d d e d f o r a c c e s s i n g t h e o u t p u t v a l u e s o f t h e E R R c o m m a n d . •N e l w u i l t i n v a r i a b l e s " $ r u n _ n a m e N " , " $ r u n _ t i t b e N " a n d " $ r u n _ d i r N " f o r m u l t i p l e m o d e l s . e •N Page 7.1

192 T/HIS User manual Version 15.0, May 2018 b u i l t i n v a r i a b l e " $ F T C F _ P A T H " •N e w New Features for FAST-TCF version 9.2 FAST-TCF has been extensively revised to include almost all of the T/HIS commands. The improved functionality does mean that old scripts may have to be changed to meet the new standards. NOTE: FAST-TCF is not 100% compatible with pre-version 9.1 input scripts: w i l e s h a v e c h a n g e d t o a l l o w m o r e f l e x i b i l i t y , b u t t h e o l d r u l e f o r f i l e n a m e s ( b o r d 1 + w o r d 2 ) h a s n o w b e e n • a a V r o t i n u e d , f i l e n a m e s m n s t a l l b e o n e w o r d c s i d u d w a l l c o m m a n d m u s t n o w h a v e " n " •R o r t h e x t f f i l e o u t p u t ( r a t h e r t h a n n o t h i n g a t a l l ) i g i f l a n d S o l i d e f f e c t i v e s t r a i n m u s t h a v e t h e f o u r t h w o r d " e f f " t o d i l t i n g u i s h t h e m f r o m o t h e r t y p e s o f s t r a i n •S h e s t a v e b e e n h d d e d a h t a A S T - T C F d e f a u l t s f o r p l o t s e t u p - d e f a u l t s a r e n o w t h e T / H I S s t a n d a r d o •N e s o F n New features since version 9.1: a d i n g o f k e y w o r d , c s v , c s v 2 , a n d b u l k d a t a f i l e s , k e y b o a r d e n t r y R • e g r i o n c o m m a n d s " o r d e r " , " c a t " , " r _ a v e " , " s t r e s s " , " l o t x " , " l o g x 1 0 " , " t r a n s l a t e " , " v e c t o r 2 D " , " w i n d o w " e •O p a i a b l e s a r e p r o c e s s e d o n a l i n e b y l i n e b a s i s •V a r i g b l e s c a n b e d e f i n e d u s i n r c u r v e p r o p e r t i e s - f o r e x a m p l e a v a r i a b l e c o u l d b e s e t t o e q u a l m a x o f a c u r v e , •V a a t d e n u s e d t o d i v i d e a n o t h e r c u r v e a n h i t n u a t i o n l i n e n a d d e d - d e f i n e d u s i n g a " \ " a t t h e v e r y e n d o f a l i n e o •C s b u l a t i o n c o m m a n d s " y a t m a x " a n d " y a t m i n " a d d e d f o r Y v a l u e s a t m a x i m u m a n d m i n i m u m X •T a l l t r a c t i o n c o m m a n d s a r e s u p p o r t e d : B o u n d a r y , G e o c o n t a c t s , F S I , J o i n t s , S P H , T h i c k s h e l l s a n d s o o n •A e x s t m i s s i n g c o m p o n e n t s f o r p r e v i o u e d a t a t y p e s a r e n o w s u p p o r t e d l •A l h t i p l e d a t a e x t r a c t i o n o n o n e l i n e e . g . " n o d e 1 0 0 : l a s t a c c X " •M u l t n p l e g e l e r i c t a g g i n g a n d l a b e l i n g o f o u t p u t c u r v e s u s i n g w i l d c a r d " * " •M u i n t p l e c u r v e s c a n b e o p e r a t e d u p o n i n o i e l i n e e . g . " o p e r A D D a c c _ * 1 0 . 0 " u •M l l t i p l e c u r v e s c a n b e p l o t t e d u s i n g w i l d c a r d s " * " i n t a g n a m e s •M u t n r a t i o n p o i n t o u t p u t c a n b e c h a n g e d •I e g u t l e m o d e l s s p p p o r t e d l i u •M e n d e d p l o t t i n g s y n t a x f o r s e t t i n •E u p p l o t d e f a u l t s ( g r i d c o l o u r s , o f f s e t s , f o n t s a n d s o o n ) x t g a b c " c o m m a n d f o r w r i t i n g o u t t a b u l a t i o n d a t a t o a c s v f i l e •" T e l t " a n d " a u t o " c o m m a n d s a d d e d f o r u s e i n i n t e r a c t i v e p l a y b a c k m o d o •" p macro support for running FAST-TCF files on specific curves • 7.1 FAST-TCF INTRODUCTION 7.1.1 General Rules one 1. Each line data extraction or plot request in the input file defines 2. Long lines can be split into shorter ones using a continuation character "\" at the end of each line divide the line into ’words’ 3. Space characters are used to 4. The input script is NOT case-sensitive. Unless detailed elsewhere in this manual, the first few (usually three) characters of the first word on the line 5. discriminate the request of a particular entity, and the syntax which applies to reading in the remaining words on the line 6. If the first word on the line is not recognised, the program ignores it - it is treated as a comment for filtering, Y-axis scaling, HIC, average and a p t i o n s o 7. The last words on the data extraction request lines allow short reference tag (The tags may be used for operation and plotting requests) o p t i o n s for title, line style and axis changes 8. The last words on the plotting request line allow A successful data extraction always has a curve outputted, if there is no output (e.g. HIC, ERR) then a duplicate 9. curve is outputted. This helps with tagging output curves 7.1.2 Running FAST-TCF 7.1.2.1 Automatic running FAST-TCF is integrated into the T/HIS executable and can be accessed from the command line or the shell. Command line syntax: -tcf= -start_in= -exit -batch Page 7.2

193 User manual Version 15.0, May 2018 T/HIS e.g. this93.exe -tcf=side_impact.tcf -start_in=e:\side_impact\run1 -exit run1.thf The , -start_in, -exit and -batch syntax are all optional. NOTES: • If no THF file is specified then T/HIS will search the directory for the latest one (*.thf). • If no THF file exists, then T/HIS will look for a d3thdt file (xtf file = xtfile). If this does not exist then no thf or xtf input filename is passed to FAST-TCF, and the input file is defaulted to • ASCII The program runs in any directory you like (via the -start_in command line option). The FAST-TCF output files • are created in that directory, and files written out are relative to that directory. Instead of opening a single model multiple models can be read using the command line option -tcf= -start_in= -exit -batch -model_list= The -model_list expects a text file with a list of filenames (1 per line) to read into model slots within T/HIS. e.g e:\side_imnpact\run1\run1.thf e:\side_imnpact\run2\run2.thf e:\side_imnpact\run3\run3.thf e:\side_imnpact\run4\run4.thf Shell operation: Right click on the SHELLS’s T/HIS button, and go to the options menu. Select the FAST-TCF input script and the thf input file if necessary. Return to the main shell menu and press the T/HIS button. 7.1.2.2 Interactive running In the T/HIS tools menu within T/HIS, select the FAST-TCF option, then click on the "Run" tab in the sub menu that appears. This brings up the following menu: Page 7.3

194 T/HIS User manual Version 15.0, May 2018 The user can select the script file then with play the whole file through, or step through each command one by one. The FAST-TCF line appears in the top dialogue box, and the translated T/HIS line appears in the bottom box. The line about to be sent to T/HIS appears in red text. To end the script prematurely, hit the "End" button. 7.1.3 Input Files Needed, and Output and Intermediate Files Created required 1. input_script is at the start. .output is a file that contains the concatenated output from FAST-TCF. input_script 2. 3. input_script .tmp is a temporary file that FAST-TCF creates for translation. This is merged after completion .output so if you see this file then FAST-TCF didn’t finish cleanly. into input_script .rep is a temporary report file of the FAST-TCF run. This is merged after completion into 4. input_script .output so if you see this file then FAST-TCF didn’t finish cleanly. input_script 5. input_script .tcf are the commands passed to T/HIS from FAST-TCF. This is merged after completion into input_script .output so if you see this file then FAST-TCF didn’t finish cleanly. The command lines contain special characters such as \r, \m and \l. These are used internally in T/HIS and should be ignored by the user. .sngval contains summaries of every curve outputted. input_script 6. Other files will be made, such as postscript or bitmap plots, but these will have names specified by the user. Page 7.4

195 User manual Version 15.0, May 2018 T/HIS 7.1.4 Debugging FAST-TCF files Complicated FAST-TCF files will inevitably go wrong. There are a number of things the user can do to help identify where it is going wrong. Assuming the command line syntax is correct and the correct files are in the run directory, these typical procedures are as follows: Identifying errors using the interactive playback option in T/HIS: • Read the model(s) into T/HIS. Read the FAST-TCF script into T/HIS under the "FAST-TCF > Run" sub menu. • • Step through the FAST-TCF script manually, keeping an eye on how FAST-TCF is translating the lines, and the output T/HIS is producing. Identifying if FAST-TCF has found an error: If FAST-TCF finds an error, then it is stored and T/HIS then resets the command line and continues to translate • the input file. If 10 errors are found then T/HIS will stop at this line. You can set this error amount internally within FAST-TCF. Once T/HIS has stopped, the errors are summarised in the command line box and the terminal that T/HIS was • run from. The number of warnings found is also printed. • It should be obvious what is wrong, FAST-TCF checks numerous things, including: Whether T/HIS created the curve from the previous line. • • That the syntax is correct for all the data input lines (the data extraction requests have additional checking to check the combinations of words inputted is right). • If the syntax is correct, whether it applies to the file being requested for output. • The output file exists in the directory for the data extraction. • Correct the input line error utilising the reference tables in this document if applicable. Identifying what errors T/HIS is giving: • Identify how many curves were outputted into T/HIS before things went wrong (run T/HIS in graphical mode). Place an exit keyword input line. This should stop T/HIS just after the line which is causing the after the next • file to fail. • Check what errors T/HIS is giving out. If it’s not obvious what went wrong then try another procedure. Identifying if there are warnings or errors from FAST-TCF: The errors are summarised once T/HIS has finished. They are printed in the command line box and the terminal • which T/HIS was run from. input_file .rep or input_file .output file in the directory which contains any warnings or errors that There will be a • FAST-TCF has detected. Make sure nothing is obviously wrong with the input file using this report file. input_file. tmp or input_file .output file contains the actual file inputted into FAST-TCF after includes have • The been found and special characters removed. Check this is correct and all the include files have been accounted for. Identifying if FAST-TCF is processing the line correctly: .tcf or .output It’s possible that FAST-TCF has processed the line incorrectly. If so, open the input_file • input_file file to investigate what FAST-TCF is asking T/HIS to do. b o v e p • o c e d u r e , and then find this section in the .tcf file. Input the Identify which line is going wrong using the a r entire tcf request for the line into the T/HIS command box to step through what is being asked from T/HIS. This may highlight where things are going wrong. The command lines contain special characters such as \r, \m and \l. These are used internally in T/HIS and should be ignored by the user. Using Primer to check a FAST-TCF file: Primer has a FAST-TCF check menu under the main check menu. This can be used to check the FAST-TCF • file data requests against a certain keyword deck. • Read the deck into Primer, and select MODEL > CHECK > CHECK FAST-TCF FILE. Select the FAST-TCF file and press APPLY. Details can be found in Section 3.9 of the Primer manual. Primer will highlight any errors that have occurred with the input file with regards to the keyword deck. • • The main Primer checks are if the line syntax is valid, whether the correct file is being outputted, whether the relevant DATABASE_HISTORY is present and whether the id. actually exists. Any errors will have to be corrected manually in Primer. • NOTE: If FAST-TCF has completed, then it may be necessary to open the input_file .output file which has the all the output files concatenated together in different sections. Page 7.5

196 T/HIS User manual Version 15.0, May 2018 7.1.5 Creating FAST-TCF files The most obvious option is to generate a FAST-TCF script using a text editor such as vim or wordpad. However, an easier option is to use T/HIS as normal, then generate a FAST-TCF script to recreate the curves currently displayed on the screen from within T/HIS. It involves a single button click to produce a FAST-TCF script that can recreate the plot on the screen. T/HIS internally stores the history behind each curve; noting which curves, operations and data requests were used to create each curve. This means that the user have to start recording a does not command file, and carefully record a script. Instead the user can work for as long as they like as normal, then choose to generate a FAST-TCF script to recreate the plot on the screen by using the FAST-TCF > Create menu. By default the FAST-TCF script that is generated will contain commands to reproduce all of the graphs that are currently defined in T/HIS. Instead of reproducing all of the graphs the FAST-TCF script can also contain the commands to generate a subset or pages or graphs. 7.1.5.1 FAST-TCF Script : Image Output This option can be used to add the commands to the FAST-TCF script to generate an image of each graph/page that is selected for output. In addition to selecting the image format a filename can also be specified that is used in the FAST-TCF script as the output filename for images. 7.1.5.2 FAST-TCF Script : Curve Output This option can be used to add commands to the FAST-TCF script to write curves out to a T/HIS curve file. By default this option will add commands to the FAST-TCF script write any curves that are unblanked in a graph to a curve file. Instead of writing all of the unblanked curves out to a file the "Select Curves" option can be used to select a subset of curves. Page 7.6

197 User manual Version 15.0, May 2018 T/HIS 7.1.5.3 FAST-TCF Script : Curve Group Output This option can be used to select additional curves for output to the FAST-TCF script by curve group. If a curve is selected that is also unblanked in one of the graphs the command to regenerate it are only added to the FAST-TCF script once. This option will also add the commands to regenerate the selected curve groups to the FAST-TCF script. Page 7.7

198 User manual Version 15.0, May 2018 T/HIS 7.2 PAGE / GRAPH LAYOUT AND SELECTION FAST-TCF scripts can contain commands to create and position multiple graphs. T/HIS Pages can also be created and graphs moved between pages. By default T/HIS will automatically create a single graph on the 1st ’Page’ when it starts. If a single graph is required then the script does not need to contain any of the commands in this section. If additional graphs are required then by default they will be created on the 1st Page unless multiple pages have been selected. 5th word 3rd Keyword 4th notes 2nd 6th 9th 7th 8th word word word word word word word Page 7.8

199 User manual Version 15.0, May 2018 T/HIS - - - - Set the page layout to tile wide Layout page wide - - - - - Set the page layout to tile tall tall - - - - - Set the page layout to cascade - cascade - - - - Set the page layout to 1 by 1 graphs per page - - - - - 1x1 2x2 - Set the page layout to 2 by 2 graphs per page - - - - - - - - Set the page layout to 3 by 3 graphs per page 3x3 - - - - XY - Set the page layout to (m) by (n) graphs per m n - - page - - - - Set the page layout to custom custom - - - - - Add all graphs to page (n) - all n - - - - - n none - Remove all graphs from page (n) graph - - - Add graph (ID) to page (n) n add ID ID remove - Remove graph (ID) from page (n) n - graph - - - Set the page size to m by n pixels - - n m size size - - Set the page size to automatic auto - - - - - - - total graph n - Set the total number of graphs to (n) - - - - Create a new graph create - - - - - - Deletes all graphs except the first one. delete all - - - - - Delete graph (n) n delete - x1,y1 x2,y2 - - - Position graph (n) with the bottom left hand position n corner at screen location (x1,y1) and the top right hand corner at (x2,y2). All coordinates should be in the range 0.0 to 1.0. - select - Select all graphs - - all - - - Select graph (n) - select - n - - - - Deselect all graphs select none - - right axes bottom n position top left Set the position of the left, right, top and bottom axis for graph (n). The positions given should be in the range 0.0 to 1.0 or the word ’Auto’. left right n / all bottom Set the position of the left, right, top and legend position top bottom of the legend for graph (n) or all graphs. The positions given should be in the range 0.0 to 1.0 or the word ’Auto’ format - Set the legend format to one of legend - - n / all column/default, full/off, automatic, floating for graph (n) m - - n / all Set the number of columns in the legend to m legend columns - (1 to 3) for graph (n) or all graphs legend background standard - - - Set a background colour for the floating n / all colour legend for graph (n) or all graphs transparency legend - - - Set the background transparency for the n / all integer (0-100) floating legend for graph (n) or all graphs Set the x axis unit format to one of - - automatic, x - n / all format for graph (n) or all graphs general, scientific automatic, - - Set the y axis unit format to one of - n / all y format for graph (n) or all graphs general, scientific format - - - Set the second y axis unit format to one of n / all y2 for graph (n) or automatic, general, scientific all graphs m - - x Set the number of decimal places displayed n / all precision - for the x axis values to (m) in graph (n) or all graphs precision m - - - Set the number of decimal places displayed n / all y for the y axis values to (m) in graph (n) or all graphs - m - - y2 Set the number of decimal places displayed n / all precision for the second y axis values to (m) in graph (n) or all graphs Page 7.9

200 T/HIS User manual Version 15.0, May 2018 7.3 INPUT SYNTAX TO LOAD OTHER FILES FAST-TCF has the option of reading in curve files and other FAST-TCF files nested within the input file. T/HIS now writes out and reads in curve styles and internal tags. FAST-TCF recognizes these tags if the user wishes to refer to them later on in the input file. If they are relative then the include files must be relative to where T/HIS is running from. Filenames can contain spaces, but if they do then they must be enclosed in quotes e.g. read "c:\my documents\filename.cur". keyword Description third word onwards second notes word - bulk data file readb Bulk data curves will be read in at this point in the file, and will be numbered accordingly readcsv csv file Subsequent words can be any of these 2 options. lr If no options then assumes reading x from column 1 ar CSV 2 (X,Y,Y,Y...) xg csv file type 2 options. Only one of the options XG and XC can be used. If no options then assumes reading x from column 1 ar - curves will be read in at this point in the file, and will T/HIS Curve file rea curve name be numbered accordingly curve tags and styles are stored automatically through the $TAG and $STYLE lines NOTE: If the tag in the curve file conflicts with an existing tag, the tag is NOT read in keyword file curves will be read in at this point in the file, and will readk Keyword - name be numbered accordingly include file - FAST-TCF Include FAST-TCF will search for includes within includes inc etc name FAST-TCF pastes the include files into the final input file as soon as they are detected readlspost Reads in curves from an LS-PREPOST curve file filename LS-PrePost Curve - file readlsp_xy - Reads in curves from an LS-PREPOST XY data file LS-PrePost XY data filename file header file channel number to read subsequent words can be either of these 2 options DIAdem read_diadem filename JavaScript java - Runs a JavaScript. If any curves created by the JavaScript file name JavaScript are referenced by following command in the FAST-TCF script then the JavaScript should generate curves tags for the curves whih ccan then be used in the FAST-TCF script. Keyboard entry can also be added into the FAST-TCF file, allowing for simple curves to be created in T/HIS. The . The order of the following words is important, and must be adhered to (see below). The keyboard keyword for this is continuation line character is useful here "\". notes following word Keyword following word specifies the x axis label Keyboard x axis name xaxis specifies the y axis label yaxis y axis name specifies the curve label label curve label of values xval,yval no space between the x and y values, only a space between the pairs data xval2,yval2 xval3, yval3 etc for example, to create an acceleration curve with a straight line at value 1.0: keyboard title straight line \ xaxis time \ yaxis accn \ label straight line at 1.0 \ data 0.000000,1.000000 \ 1.000000,1.000000 Page 7.10

201 User manual Version 15.0, May 2018 T/HIS 7.4 INPUT FOR DATA EXTRACTION REQUESTS Each data extraction request occupies one line, with the ’words’ on the line separated by space characters. The line starts with a keyword and the required arguments follow, then any optional requests can occur after the arguments (see later on in the manual). ID can be a number or a name (enclosed in quotes ""), depending on whether the LS-DYNA version supports it in the relevant output file. s p l e d a t a r e l u e i t s t M u q T/HIS 9.2 onwards supports multiple data output syntax. T/HIS will read the data in one file pass, making it much quicker for larger runs. To use this in FAST-TCF you need to specify the range using a colon (:) and it must be in a single word. As well as the standard numbers you can use, there are some special words namely "all", "first" and "last" (see example). e.g. whole_model te lsda (whole model) (total energy) (force lsda file) y_dir 42 node force (force in y-direction) (i.d. 42) (node extraction) "end of roof" node z accel (z acceleration) (i.d. "end of roof") (node extraction) node force y_dir 100:last (node extraction) all nodes from 100 (force in y-direction) y_dir all node force (node extraction) (force in y-direction) all nodes 7.4.1 Selecting Models If T/HIS contains more than one model the data extraction commands will attempt to read data from all the model that are currently selected. To specify which model to read data from the following commands can be used Keyword second word notes model n Select model "n" for reading data from Select all models for reading data from all none Unselect all models 7.4.2 Data Extraction options 7.4.2.1 Specifying Files for data extraction For some LS-DYNA data types results can be extracted from multiple files. By default FAST-TCF scripts will extract . t i o data from the default T/HIS file type for each entity type (see 5 S 1 7 . 1 ). These defaults can be changed via the e c n e f e r e n c e f i l e . p r l e n e f i i e keyword (e.g. f Instead of using the default file any of the valid files types can be specified by using either the d x t r a l i n e o p t i o n . When this occurs, FAST-TCF will take the extraction request from define file LSDA) or by adding an e but only if T/HIS allows it. the specified type of file - Page 7.11

202 T/HIS User manual Version 15.0, May 2018 third Keyword notes second word word define file lsda will always check that t/his can get the output from this file, if not then the original default file will be chosen (see data extraction table). This file can still be overwritten on the actual input line ascii xtf thf default e.g. node 42 displacement x (read data from default file) define file LSDA node 42 displacement x (read data from LSDA file) node 42 displacement x ASCII (read data from ASCII file) 7.4.2.2 Specifying components for Steady State Dynamics (SSD) analysis For a SSD analysis LS-DYNA generates 2 data values, an amplitude and an angle, for each component in the NODOUT and ELOUT parts of the LSDA (binout) file. By default FAST-TCF will extract the amplitude for each data component but this can be changed if required to extract the angle value. notes Keyword third word second word ssd_comp define amplitude selects the amplitude value for all following data requests selects the angle value for all following data requests angle define ssd_comp angle e.g. (read angle value for all SSD analysis data components) define ssd_comp amplitude (read amplitude value for all SSD analysis data components) 7.4.3 Defining Groups of Parts second word keyword Description following words part ids Group definition gdef group id gadd group id part ids Add parts to group dd or ’gadd’ and is followed by an integer for the group i.d, and then part i.d. The line starts with 1. ’gdef’ numbers separated by spaces, or for a range of parts - separated by a ’:’. 2. No options should be applied to this card, because all the words on the line are written out as integers. 3. The input is on one line (which may result in a long line ... ). If the line is too long (currently ~1000 characters) T/HIS will truncate the command and issue an error message. The command is useful if the ’gdef’ ’gadd’ command is too long to create a group on a single line. e.g. gdef 1 1 2 3 4 10:20 30:40 (parts 10 to 20 and 30 to 40) (group define i.d. 1) (parts 1 2 3 and 4) gadd 1 5 6 7 8 50:60 (parts 5 6 7 and 8) (parts 50 to 60) (group add i.d. 1) Page 7.12

203 User manual Version 15.0, May 2018 T/HIS 7.4.4 Specifying Surfaces, Integration Points and Nodal Locations for data extraction 7.4.4.1 Specifying Surfaces and Integration Points From version 12.0 onwards the syntax for specifying which surface or integration point to read data from for Shells, Thick Shells and Beams has changed. These options are now appended to data extraction as follows. Shells and Thick Shells extra word #1 notes extra word #2 top surface If no surface option is specified then the default (middle) surface will be used. middle bottom n e.g. shell 99 stress xx tag curve_1 (read x stress for shell 99 middle surface) shell 99 stress xx surface top tag curve_1 (read x stress for shell 99 top surface) shell 99 stress xx surface 3 tag curve_1 (read x stress for shell 99 layer 3) Beams extra word #1 extra word #2 notes Specifies the beam integration point to read data from ipoint n e.g. beam 99 stress x ipoint 1 tag curve_1 (read axial stress for beam 99 integration point 1) 7.4.4.2 Specifying in-plane integration points for Shells and Thick Shells In recent versions of LS-DYNA it is possible to write out data at multiple in-plane integration points for fully integrated Shells and Thick Shells for each through thickness layer. For fully integrated solid elements data can also be written out for all 8 integration points. By default T/HIS will automatically read the average value for each element. If the element isn’t fully integrated then the data for the 1st point will be used, if it is fully integrated and has multiple integration points then the average value will be calculated. extra notes extra word #2 word #1 ipoint n Specifies the in-plane integration point to read data from. If this option isn’t specified then the surface centre value will be selected. If the element is fully integrated then the average value will be calculated from all 4 in-plane values e.g. shell 99 stress xx tag curve_1 (read x stress for shell 99 middle surface, centre value) shell 99 stress xx ipoint 1 tag curve_1 (read x stress for shell 99 middle surface in-plane integration point 1) Page 7.13

204 T/HIS User manual Version 15.0, May 2018 shell 99 stress xx surface middle ipoint 1 tag curve_1 (read x stress for shell 99 middle surface in-plane integration point 1) shell 99 stress xx surface 5 ipoint 2 tag curve_1 (read x stress for shell 99 layer 5 in-plane integration point 2) 7.4.4.3 Specifying integration points for Solids In recent versions of LS-DYNA it is possible to write out data at all 8 integration points or fully integrated solid elements. By default T/HIS will automatically read the average value for each element. If the element isn’t fully integrated then the data for the 1st point will be used, if it is fully integrated and has multiple integration points then the average value will be calculated. extra notes extra word #2 word #1 n ipoint Specifies the solid integration point to read data from. If this option isn’t specified then the centre value will be selected. If the element is fully integrated then the average value will be calculated from all 8 values e.g. solid 99 stress xx tag curve_1 (read x stress for solid 99 centre value) solid 99 stress xx ipoint 1 tag curve_1 (read x stress for solid 99 integration point 1) 7.4.4.4 Selecting data at element nodal positions In recent versions of LS-DYNA it is possible to write out data for Solid, Shells and Thick Shells that has been extrapolated from the integration points to the elements nodes. For Shells the values at all through thickness layers can be extrapolated to the nodes. For Thick Shells the bottom surface values are extrapolated to nodes 1-4 and the top surface values are extrapolated to nodes 5-8. extra word #2 notes extra word #1 node n Specifies the element node number to read data for e.g. shell 99 stress xx node 3 (read x stress for shell 99 middle surface extrapolated to node 3) shell 99 stress xx surface 5 node 1 tag curve_1 (read x stress for shell 99 layer 5 extrapolated to node 1) tshell 99 stress xx node 7 tag curve_1 (read x stress for thick shell 99 top surface extrapolated to node 7) solid 99 stress xx node 4 tag curve_1 (read x stress for solid 99 extrapolated to node4) Page 7.14

205 User manual Version 15.0, May 2018 T/HIS 7.4.5 Data extraction reference table Third word Data type Description Second word Fourth Keyword word Airbag - [pr]essure Air pressure Airbag id volume - [vo]lume internal energy - [ie] - mass flow rate in [in] - mass flow rate out [ou] [tm] - total mass - [de]nsity Density Surface area - sa [te]mp Gas temperature - rf - Reaction force tk - Translational Kinetic Energy dmp Damping Energy - - pp Average Particle Pressure if - Inflator Energy Airbag id Part id Airbag Part Data Pressure [pr]essure ab_part (ABSTAT_CPM) Mass flow rate through fabric maf mav Mass flow rate through vent Total area ta [un]blocked Unblocked area Temperature [te]mperature ppr Press s+ Press s- npr hc Heat Convection Energy ev Enhanced Vent Flag Leak Energy le pvo Por Volume Airbag Chamber Data Part id ab_chamber Pressure [pr]essure Airbag id (ABSTAT_CHAMBER) Volume [vo]lume Density [de]nsity Internal Energy ie in Mass flow rate in Mass flow rate out [ou]t Total mass tm Surface area sa [te]mperature Temperature Reaction Force rf tr Translational Energy Number of Particles np pp Average Particle Pressure X coord Airbag Sensors xc ab_sensor Sensor id - (CPM_SENSOR) - yc Y coord zc - Z coord vx X Velocity - vy - Y Velocity Z Velocity - vz Velocity Magnitute vm - pressure [pr]essure - - Density [de]nsity Gas temperature [te]mp - N Particles - np Page 7.15

206 T/HIS User manual Version 15.0, May 2018 Bea Beam id [n]ormal x Axial force Beam Shear force in Y y Shear force in Z z [m]oment y Moment in Y Moment in Z z x Torsional moment - [stra]in Axial strain [e]nergy Bending energy: end 1 p1 p2 Bending energy: end 2 Y rotation: end 1 [r]otation y1 y2 Y rotation: end 2 z1 Z rotation: end 1 z2 Z rotation: end 2 Torsional rotation x [b]ending y1 Y Bending moment: end 1 Y Bending moment: end 2 y2 z1 Z Bending moment: end 1 z2 Z Bending moment: end 2 [e]nergy Axial collapse energy a i Internal energy x [stre]ss Axial stress XY Shear stress xy zx ZX Shear stress [eff] - Effective plastic strain [exx] - Axial strain ## [e]xtra Extra data ## dx [di]screte Axial displacement Displacement in Y dy Displacement in Z dz Axial rotation rx ry Rotation in Y rz Rotation in Z" X Force - Bearing id [fx] Bearing bear - [fy] Y Force [fz] - Z Force X Moment - [mx] - [my] Y Moment [mz] - Z Moment [dx] - X Displacement - [dy] Y Displacement [dz] Z Displacement - X Angle - [ax] [ay] Y Angle - [az] - Z Angle Local X Force [lfx] - Local Y Force - [lfy] - Local Z Force [lfz] [lmx] Local X Moment - [lmy] - Local Y Moment [lmz] Local Z Moment - Local X Displacement - [ldx] Local Y Displacement [ldy] - Local Z Displacement [ldz] - - Local X Angle [lax] Local Y Angle [lay] - Local Z Angle - [laz] Page 7.16

207 User manual Version 15.0, May 2018 T/HIS Bou Boundary id [n]odal loads Applied X Force fx Boundary Applied Y Force fy Applied Z Force fz fm Applied Resultant force Energy from applied force e [ri]gid body loads fx Applied X Force Applied Y Force fy Applied Z Force fz fm Applied Resultant force e Energy from applied force Applied X Force fx [p]ressure nodal loads fy Applied Y Force fz Applied Z Force fm Applied Resultant force Energy from applied force e [rv]elocity r-body fx BC motion X Force loads BC motion Y Force fy BC motion Z Force fz Resultant BC motion force fm Energy from BC motion en mx BC motion X Moment my BC motion Y Moment mz BC motion Z Moment BC Moment Magnitude mm fx BC motion X Force [v]elocity nodal loads fy BC motion Y Force BC motion Z Force fz fm Resultant BC motion force e Energy from BC motion CESE Element or Point cese_el / [c]oord Element / Point id x Current X coord cese_pt Current Y coord y z Current Z coord m Current Vector X Velocity [ve]locity x X Velocity y Z Velocity z m Velocity Magnitude [vo]rticity x X Vorticity Y Vorticity y z Z Vorticity Vorticity Magnitude m [d]ensity Density - [pr]essure - Pressure [t]emperature - Temperature CESE FSI Drag cese_fs 1=solid, 2=shell, px [dr]ag X Pressure Force 3=sol2D, 4=beam Y Pressure Force py Z Pressure Force pz Pressure Force Magnitude pm cese_ss X Pressure Force Part id (0 if only one px [dr]ag CESE Segment Set Drag part requested) Y Pressure Force py pz Z Pressure Force pm Pressure Force Magnitude vx X Viscous Force vy Y Viscous Force vz Z Viscous Force vm Viscous Force Magnitude Total Area area Page 7.17

208 T/HIS User manual Version 15.0, May 2018 Con / Sli Contact id [f]orce x Master X force Contact Master Y force y Master Z force z m Master Force Magnitude xs Slave X force Slave Y force ys zs Slave Z force ms Slave Force Magnitude Master X moment x [mo]ment Master Y moment y Master Z moment z xs Slave X moment Slave Y moment ys zs Slave Z moment Master Mass [ma]ss m s Slave Mass t Total energy (Slave + Master) [e]nergy s Slave side energy Master side energy m f Frictional energy [g]eometric fx X force Y force fy fz Z force fm Force Magnitude Moment in X mx Moment in Y my mz Moment in Z mm Moment Magnitude x Section id [f]orce X force Cross section Cro / Sec Y force y z Z force m Force Magnitude [m]oment Moment in X x Moment in Y y Moment in Z z m Moment Magnitude X centroid coord [c]entroid x y Y centroid coord Z centroid coord z [a]rea - Area of section Page 7.18

209 User manual Version 15.0, May 2018 T/HIS x em_el / em_nd Current X coord Element / Node / Point EM Element, Node or [co]ord / em_pt Point id y Current Y coord Current Z coord z Current Vector m X Current [cu]rrent x X Current y z Z Current m Current Magnitude X AField x [a]field Y AField y z Z AField m AField Magnitude x X BField [b]field y Y BField z Z BField BField Magnitude m X EField [e]field x y Y EField Z EField z m EField Magnitude X Lorentz Force [l]force x Y Lorentz Force y Z Lorentz Force z Lorentz Force Magnitude m [s]igma - Sigma [m]ur - Mu-R JHRate [j]hrate - pressure - FSI id [pr]essure FSI FSI X force x [f]orce y Y force z Z force Force Magnitude m [po]rous Porous Leakage - [m]ass - Mass Flux icfd_dr X Pressure Drag px ICFD Drag [dra]g Part id / -1 for average / 0 for sum or if only one py Y Pressure Drag part pz Z Pressure Drag pm Pressure Drag Magnitude X Viscous Drag vx vy Y Viscous Drag vz Z Viscous Drag Viscous Drag Magnitude vm pmx MX Pressure Drag MY Pressure Drag pmy pmz MZ Pressure Drag pmm Pressure Drag Moment Magnitude MX Viscous Drag vmx MY Viscous Drag vmy vmz MZ Viscous Drag vmm Viscous Drag Moment Magnitude Page 7.19

210 T/HIS User manual Version 15.0, May 2018 icfd_nd / icfd_pt Node / Point id [c]oord x Current X coord ICFD Node or Point Current Y coord y Current Z coord z m Current Vector [ve]locity x X Velocity X Velocity y z Z Velocity Velocity Magnitude m [vo]rticity X Vorticity x y Y Vorticity z Z Vorticity m Vorticity Magnitude Density [d]ensity - [pr]essure Pressure - Temperature [t]emperature - ICFD Temp [t_a]rea Part id / 0 for sum or if average Temperature Area Average icfd_th only one part average [t_s]um Temperature Sum Average Average Heat Flux [he]at flux [tot]al Total Area area [ht]c - Heat Transfer Coefficient Joi Joint id [f]orce x X force Joint Y force y Z force z m Force Magnitude Moment in X x [m]oment y Moment in Y z Moment in Z Moment Magnitude m *CONSTRAINED_JOINT_STIFFNESS_GENERALIZED an [ph]i Phi angle d(Phi)/dt dt st Phi stiffness moment da Phi damping moment to Phi total moment Theta angle [th]eta an dt d(Theta)/dt Theta stiffness moment st da Theta damping moment to Theta total moment an [ps]i Psi angle d(Psi)/dt dt Psi stiffness moment st Psi damping moment da to Psi total moment Total joint energy [ge]neralized en *CONSTRAINED_JOINT_STIFFNESS_FLEXION-TORSION Alpha angle an [al]pha dt d(Alpha)/dt Alpha stiffness moment st Alpha damping moment da to Alpha total moment Beta angle an [be]ta d(Beta)/dt dt st Beta stiffness moment da Beta damping moment to Beta total moment an [ga]mma Gamma angle dt d(Gamma)/dt fa Gamma scale factor Total joint energy en [fl]exion Page 7.20

211 User manual Version 15.0, May 2018 T/HIS Joint id *CONSTRAINED_JOINT_STIFFNESS_TRANSLATIONAL Joint Joi X displacement xd [tr]anslational d(X)/dt dxd Y displacement yd d(Y)/dt dyd Z displacement zd dzd d(Z)/dt X stiffness xsf X damping xdf X total xtf ysf Y stiffness ydf Y damping ytf Y total zsf Z stiffness Z damping zdf Z total ztf Total joint energy en Node [te]mperature Node id x Temperature No Top Surface Temperature [to]p temperature Bottom Surface Temperature temperature [bo]ttom x X Displacement [d]isplacement Y Displacement y Z Displacement z Displacement Magnitute m x X Velocity [v]elocity Y Velocity y Z Velocity z m Velocity Magnitute X Acceleration x [a]cceleration y Y Acceleration z Z Acceleration Acceleration Magnitude m x Current X coord [c]oord Current Y coord y Current Z coord z Current Vector m [b]asic Basic X coord x Basic Y coord y z Basic Z coord Basic Vector m x X rotation [r]otation Y rotation y Z rotation z m Rotation Magnitude X rotational velocity vx vy Y rotational velocity Z rotational velocity vz vm Rotation Vel Magnitude ax X rotational acceleration Y rotational acceleration ay az Z rotational acceleration am Rotation Accel Magnitude X force force x Y force y z Z force Force Magnitude m Energy [e]nergy - Node Group Group id force Ng x X force y Y force z Z force Force Magnitude m Page 7.21

212 T/HIS User manual Version 15.0, May 2018 Part Pa Part id [k]inetic e - Kinetic energy - [i]nternal e Internal energy [h]ourglass e - Hourglass energy Total energy - [t]otal e - X momentum [mx] [my] - Y momentum Z momentum - [mz] [x] velocity - Average X velocity - [y] velocity Average Y velocity - Average Z velocity [z] velocity Added mass [am] - - [ek] Eroded Kinetic energy [ei] - Eroded Internal energy - Group id Gro Kinetic energy Part group [k]inetic e Internal energy [i]nternal e - [h]ourglass e - Hourglass energy - [t]otal e Total energy [am] Added mass - Particle Blast Pbl ie [a]ir Air Internal Energy PBlast id [d]etprod ie Detn Product Internal Energy ie [o]ut Outside Domain Internal Energy te Air Translational Energy [a]ir Detn Product Translational te [d]etprod Energy Outside Domain Translational [o]ut te Energy Particle Blast Part Part id [a]ir pr Pbp Air Pressure [d]etprod pr Detn Product Pressure Resultant Pressure [r]es pr [ar]ea - Surface Area Air X Force [a]ir x Air Y Force y [a]ir [a]ir Air Z Force z x [d]etprod Detn Product X Force [d]etprod y Detn Product Y Force z [d]etprod Detn Product Z Force x Resultant X Force [r]es y [r]es Resultant Y Force z Resultant Z Force [r]es Pressure Tube [ar]ea Node id - Cross Section Area Prt Density [de]nsity - [pr]essure - Pressure [v]elocity Velocity - Pulleys [fo]rce Pulley id - Force Pul Slip - [sl]ip Slip Rate [ra]te - Wrap Angle - [an]gle Retractor [fo]rce Force Ret - Retractor id Pullout - [p]ullout [fvp] Force v Pullout - Rigid wall Rig / Wall Wall id [n]ormal force Normal force - Global X force - [x] force Global Y force [y] force - Global Z force [z] force - - Energy [e]nergy Rigid wall Segment Rigid_seg Wall id Segment id [x] force Global X force Global Y force [y] force [z] force Global Z force Page 7.22

213 User manual Version 15.0, May 2018 T/HIS rpa / nrb Part id [d]isplacement x X Displacement Rigid part / NRB Y Displacement y Z Displacement z m Displacement Magnitude [v]elocity X Velocity x Y Velocity y Z Velocity z Velocity Magnitude m x [a]cceleration X Acceleration y Y Acceleration Z Acceleration z m Acceleration Magnitude [c]oord X coord x Y coord y Z coord z x X rotation [r]otation Y rotation y Z rotation z Rotation Magnitude m X rotational velocity vx Y rotational velocity vy Z rotational velocity vz vm Rotation Vel Magnitude ax X rotational acceleration ay Y rotational acceleration Z rotational acceleration az Rotation Accel Magnitude am Direction Cosine 11 Rigid part / NRB rpa / nrb Part id [dc]os 11 12 Direction Cosine 12 13 Direction Cosine 13 Direction Cosine 21 21 22 Direction Cosine 22 Direction Cosine 23 23 Direction Cosine 31 31 Direction Cosine 32 32 33 Direction Cosine 33 x [ld]isplacement Local X Displacement (local) y Local Y Displacement Local Z Displacement z Local X Velocity x [lv]elocity (local) y Local Y Velocity z Local Z Velocity [la]cceleration (local) Local X Acceleration x y Local Y Acceleration z Local Z Acceleration [lr]otation (local) x Local X rotation Local Y rotation y z Local Z rotation vx Local X rotational vel Local Y rotational vel vy Local Z rotational vel vz Local X rotational accel ax ay Local Y rotational accel Local Z rotational accel az Force Seat belt Sea / Bel Belt id [fo]rce - Strain - [s]train [fvs] - Force v Strain [l]ength - Current Length Page 7.23

214 T/HIS User manual Version 15.0, May 2018 Sh Shell id [stre]ss xx Stress in XX Shell Stress in YY yy Stress in ZZ zz xy Stress in XY Stress in YZ yz zx Stress in ZX MAX principal stress mx mn MIN principal stress MAX shear stress ms vm von Mises stress av Average stress (Pressure) [stra]in xx Strain in XX Strain in YY yy zz Strain in ZZ Strain in XY xy Strain in YZ yz Strain in ZX zx ma MAX principal strain MIN principal strain mi MAX shear strain sh von Mises strain vm Average strain av Effective plastic strain ef [pla]stic x Moment in X [m]oment y Moment in Y Moment in XY xy sx Shear force in X [f]orce sy Shear force in Y Normal force in X nx ny Normal force in Y nxy Normal force in XY Thickness [t]hickness - Internal energy density - [i]nternal [e]xtra Extra data ## ## - Pull through Slipring Slp [p]ullout Slipring id Solid id [stre]ss Solid Stress in XX xx So yy Stress in YY Stress in ZZ zz xy Stress in XY Stress in YZ yz zx Stress in ZX MAX principal stress mx mn MIN principal stress MAX shear stress ms vm von Mises stress av Average stress (Pressure) [stra]in Strain in XX xx Strain in YY yy Strain in ZZ zz Strain in XY xy yz Strain in YZ Strain in ZX zx MAX principal strain ma MIN principal strain mi sh MAX shear strain von Mises strain vm av Average strain [pla]stic ef Effective plastic strain Extra data ## [e]xtra ## Page 7.24

215 User manual Version 15.0, May 2018 T/HIS SPC SPC id [f]orce x X force SPC Y force y Z force z m Force Magnitude [m]oment Moment in X x Moment in Y y Moment in Z z m Moment Magnitude - SPH SPH id Density [d]ensity SPH [stra]in Strain in XX xx yy Strain in YY Strain in ZZ zz xy Strain in XY yz Strain in YZ Strain in ZX zx Effective Stress ef [stre]ss xx Stress in XX Stress in YY yy zz Stress in ZZ Stress in XY xy yz Stress in YZ zx Stress in ZX [l]ength - Smoothing Length Page 7.25

216 T/HIS User manual Version 15.0, May 2018 Sw Spotweld id [co]nstrained [a]xial Axial force Spotweld Shear force [s]hear Length [l]ength [f]ailure Failure (failed if > 1.0) Maximum failure value [ma]ximum [t]ime Failure Time Axial force [a]xial [ge]neralised Shear force [s]hear Length [l]ength Failure (failed if > 1.0) [f]ailure [ma]ximum Maximum failure value [t]ime Failure Time [sp]otweld [a]xial Axial force [s]hear Shear force Length [l]ength Failure (failed if > 1.0) [f]ailure Maximum failure value [ma]ximum [t]ime Failure Time [m]oment Resultant Moment [so]lid Axial force [a]xial [s]hear Shear force [l]ength Length Failure (failed if > 1.0) [f]ailure [ma]ximum Maximum failure value Failure Time [t]ime ff DC Failure Function Normal Failure Term nf Shear Failure Trem sf Bending Failure Term bf [ar]ea Spotweld Area Axial force [no]n-local [a]xial Shear force [s]hear [l]ength Length [f]ailure Failure (failed if > 1.0) Maximum failure value [ma]ximum [t]ime Failure Time [ass]embly Axial force [a]xial Shear force [s]hear [l]ength Length [f]ailure Failure (failed if > 1.0) [m]oment Resultant Moment [t]ime Failure Time DC Failure Function ff Normal Failure Term nf Shear Failure Trem sf bf Bending Failure Term Spotweld Area [ar]ea Spring Sp / Da [f]orce Force - Spring id [e]longation - Elongation Force v Elongation [fve] - Energy - [en]ergy - Moment [m]oment [r]otation Rotation - [mvr] - Moment v Rotation [x] force Global X force - Global Y force - [y] force Global Z force [z] force - Moment in X [mx] - - Moment in Y [my] Moment in Z [mz] - Rotational Energy - [re]nergy Page 7.26

217 User manual Version 15.0, May 2018 T/HIS Subsystem Ss Subsystem id [k]inetic e - Kinetic energy - [i]nternal e Internal energy [h]ourglass e - Hourglass energy [kr] - Kinetic Energy Ratio - [ir] Internal Energy Ratio [mx] - X momentum - Y momentum [my] - [mz] Z momentum Stress in XX Thick Shell Thi / Tsh Tshell id [stre]ss xx Stress in YY yy zz Stress in ZZ xy Stress in XY Stress in YZ yz Stress in ZX zx MAX principal stress mx MIN principal stress mn ms MAX shear stress von Mises stress vm Average stress (Pressure) av Strain in XX xx [stra]in yy Strain in YY Strain in ZZ zz xy Strain in XY yz Strain in YZ zx Strain in ZX MAX principal strain ma mi MIN principal strain MAX shear strain sh von Mises strain vm Average strain av Effective plastic strain ef [pla]stic [e]xtra Extra data ## ## Tr Tracer ID x Current X coord TRACERS [d]isplacement y Current Y coord z Current Z coord Current Vector m X Velocity x [v]elocity y Y Velocity z Z Velocity Velocity Magnitute m xx Stress in XX [stre]ss Stress in YY yy Stress in ZZ zz xy Stress in XY yz Stress in YZ zx Stress in ZX EFP - Density - (de)nsity rvol - Relative Volume ac[tive] - Active Page 7.27

218 T/HIS User manual Version 15.0, May 2018 Whole model Wh - [dt] - Time step - [k]inetic e Kinetic energy [i]nternal e - Internal energy [sw] - Stonewall energy - [j]oint e Joint internal energy [sp]ring e - Spring and damper energy - Hourglass energy [h]ourglass e System damping energy [sy]stem e - - Sliding interface energy [si] [ew] - External work - [rb] Rigid Body stopper energy [t]otal e Total energy - Total/initial energy [er] - [x] velocity Average X velocity - [y] velocity - Average Y velocity [z] velocity - Average Z velocity Time per zone cycle - [cy]cle time [am] --- Added mass %age Mass increase [pm] - Eroded Kinetic energy - [ek] [ei] Eroded Internal energy - [eh] - Eroded Hourglass energy Energy Ratio w/o Eroded - [ewoe] - [m]ass Mass 7.4.5.1 Defining Surfaces / Integration points for data extraction Some data components can be written out at multiple locations. In recent versions of LS-DYNA it is possible for each element to write out multiple values for some data components. For fully integrated Shells and Thick Shells values can be written out for all 4 in-plane integration points in each through thickness location. In addition to the integration point values it is also possible to write out data that has been extrapolated from the integration points out to the shells nodes. For fully integrated solid elements data can also be written out for all 8 integration points and values can also be extrapolated to the elements nodes. To select these additional values the entity ID’s specified in a FAST-TCF scripts can be modified as follows. Average value for solid (default) n Solids [email protected] Value at integration point X ( 0 < X < 8) [email protected] Value at node X ( 0 < X < 8) Shells Average value for shell (default) n Value at integration point X ( 0 < X < 4) [email protected] Value at node X ( 0 < X < 4) [email protected] Shells n Average value for thick shell (default) [email protected] Value at integration point X ( 0 < X < 4) [email protected] Value at node X ( 0 < X < 8) e.g. solid 10 (solid 10 - average value) solid 20 @5 (solid 20 - data from 5th integration point) shell 20 @-3 (shell 20 - data extrapolated to shells 3rd node) Page 7.28

219 User manual Version 15.0, May 2018 T/HIS 7.5 UNITS From version 9.4 onwards T/HIS can automatically add unit information to graph labels and it can convert results from one unit system to another. Each model in T/HIS can have a Unit System defined for it and a separate Unit System can be defined for displaying results. T/HIS will automatically convert results from the model Unit System to the display Unit System. T/HIS has 6 built in unit systems. Unit System name Units m,kg,s U1 mm,Tonnes,s U2 U3 mm,kg,ms U4 mm,gm.ms ft,slug,s U5 m,Tonnes,s U6 7.5.1 Setting the unit system for a model To set the unit system for a model third fourth word notes second word Keyword word model unit Set the unit system for model ’n’ to U1 U1 n U2 Set the unit system for model ’n’ to U2 U3 Set the unit system for model ’n’ to U3 U4 Set the unit system for model ’n’ to U4 Set the unit system for model ’n’ to U5 U5 U6 Set the unit system for model ’n’ to U6 all as above Set the unit system for all models 7.5.2 Setting the DISPLAY unit system To set the display unit system notes Keyword second word third word display unit Set the display unit system to U1 U1 U2 Set the display unit system to U2 U3 Set the display unit system to U3 U4 Set the display unit system to U4 U5 Set the display unit system to U5 U6 Set the display unit system to U6 7.5.3 Curve Axis units By default T/HIS will automatically set the Unit System for any curves read from a model to those of the model. In addition to setting the curve Unit System T/HIS will automatically set a unit type for the X and Y axis of the curve. These unit types are maintained through curve operations so that the correct units can be displayed for each curve. The X and Y Axis units for a curve can be manually set if required. Page 7.29

220 T/HIS User manual Version 15.0, May 2018 additional words notes Keyword second word third word Unit curve #2 to curve #n curve #1 unit cx ## ends the curve list name Set the X axis unit for curves ## ## ## ends the curve list * Unit name Set the X axis unit for all curves curve #1 curve #2 to curve #n ## ends the curve list cy Unit Set the Y axis unit for curves name ## ## Unit * ## ends the curve list Set the Y axis unit for all curves name The Unit name can be any of the following Momentum Time Rotation Energy Den Mass Flow Density Energy Rot Vel Rot Accel Stress Frequency Work Power Temperature Length Strain Thermal Flux Force Displacement Area Velocity Volume Moment Force width Pressure Moment width Accel Mass Vorticity Thermal Diffusivity Viscosity Q Criterion Elec Field Vec Magnetic Flux Vec Vec Potential Current Conductivity 7.5.4 Curve Unit Systems If a curve has been read in from any source other than a model then the Unit System can also be set. second word third word notes Keyword additional words Unit System name curve #1 curve #2 to curve #n unit cu ## ends the curve list Set the Unit System for curves ## ## Unit System name ## ends the curve list * Set the Unit System for all curves 7.5.5 Other UNIT options e c t i o n 7 . 1 4 ) then by default it will contain rows If a CSV file is written out from within a FAST-TCF script (see S containing UNIT information for the curves if UNITS have been defined. Some third party applications and scripts can not read T/HIS CSV files containing this additional UNIT information correctly. The following option can be added to FAST-TCF scripts to turn on and off the output of this additional information. Keyword second word third word notes unit csv on Turns on the output of UNIT information to CSV files Turns off the output of UNIT information to CSV files off Page 7.30

221 User manual Version 15.0, May 2018 T/HIS 7.6 CURVE TAGS In FAST-TCF any operation that uses one or more curves as an input can reference the curve using either the curve The use of curve Tags is strongly recommended as it enables scripts to be easily modified number or a curve tag. and sections added / deleted without having to renumber all the curve references within the script. Curve tags are defined for a curve by adding the keyword TAG to the data extraction command followed by the tag. e.g. node 42 force y_dir tag curve_1 (force in y-direction) (node) (tag the curve as "curve_1") (i.d. 42) node "end of roof" accel z tag point_2 (node) (i.d. "end of roof") (z acceleration) (tag the curve as "point_2") Tags cannot begin with a numeric character, e.g. tag 1_curve is not allowed. If a tag is not specified for a curve then FAST-TCF will automatically generate a tag for the curve using the T/HIS curve number as the TAG. S The TAG for a curve can be redefined at anytime within a script using the "tag" command (see e o n 7 . 1 0 . 1 ) for more c t i details. Once a curve tag has been redefined the original definition should not be used in any following commands - a curve can only have 1 TAG defined at any time. 7.6.1 Tagging curves from a T/HIS curve file Curves read in from a T/HIS curve file can be tagged by refering to each curve in the file using a negative number: e.g. tag -1 curve_1 (1st curve in the curve file) (tag as "curve_1") tag -2 curve_2 (tag as "curve_2") (2nd curve in the curve file) If curves are read in from a T/HIS curve file then then the FAST-TCF tag will be generated using the following rules. If the data extraction command contains a TAG option then that TAG will be used (as above). 1. If the curve file contains curve tags then they will be used if the data extraction command DOES NOT contain a 2. TAG option. 3. If no tags are specified in the file or in the data extraction command then T/His will automatically tag each curve as ’#’ where # is the internal T/HIS curve number. In the third case, if for example there are three curves already in T/HIS, the curves read in from the curve file will be tagged as ’4’, ’5’, ’6’, ’7’, etc. This limits how you can refer to these curves since would not be able to multiply two curves would multiply the curve tagged as ’4’ by the number together. For example the command ’op mul 4 5 tag new_curve’ 5, not by the curve tagged as ’5’. To avoid this limitation you will need to tag your curves using either the syntax explained above or by specifying a tag in the curve file. 7.6.2 Tagging multiple curve outputs From version 9.2 onwards multiple curve outputs can be generated from one FAST-TCF input line. Curve tags and labels can be specified for multiple curves using the following special syntax (note this only works on multiple curves): If the user specifies a wildcard in the tag or label (a "*"), then FAST-TCF will substitute the wildcard for the • number of the curve outputted (starting from 1). • If the user specifies a "##" then the entity ID is substituted in its place which is useful if the user knows what entities are expected on output. e.g. node 5:last accel mag tag node_* lab Head Accn * labels = Head Accn 1, Head Accn 2, etc (node IDs. 5 to last) (accel mag) tags = node_1, node_2, etc node 10:20 accel mag tag node_## lab Head Accn ## (accel mag) tags = node_10, node_11, etc labels = Head Accn 10, Head Accn 11, etc (nodes 10 to 20) Page 7.31

222 T/HIS User manual Version 15.0, May 2018 7.6.3 Using Wildcards A number of T/HIS functions and operations can be applied to multiple curves in a single command by specifying multiple curve tags using wildcards. From version 10.0 onwards the following wildcards are supported Matches Wildcard * 1 or more characters ? a single character [a-e] matches a single character against a range of characters , ’a’,’b’,’c’,’d’ or ’e’ [abc] matches a single character against a list of characters, ’a’, ’b’ or ’c’ operate e.g. multiple x_disp_* 10 tag x_mul_* (Multiple all curves with a tag starting with "x_disp_" by 10 and tag the outputs as x_mul_1, x_mul_2 ... - see t i o n 7 . S for more details) e c 8 display x_disp_* (Display all curves with a tag starting with "x_disp_" - see S . i n 7 . t 2 o 4 for more details) e c 1 curve_file.cur x_disp_* copy e c t i o n 7 . 1 4 for more (Write all curves with a tag starting with "x_disp_" to a file called "curve_file.cur"- see S details) curve_file.csv curve_1? curve_3[0-3] csv Write curves with tags curve_10, curve_11, curve_12 ... and curves with tags curve_30, curve_31, curve_32, 1 t i o n e . c 4 for more details) 7 curve_33 to a CSV file called "curve_file.csv"- see S 7.6.4 Using Curve Numbers Although it is not recommended curves can be referenced using the internal curve number instead of the curve tag. If for example the 1st curve generated by a script has the tag "curve_1" then the following 2 commands are identical. multiple curve_1 10 tag x_mul_* e.g. operate multiple #1 10 tag x_mul_* operate If curve numbers are used within a script then T/HIS will automatically offset the curve numbers in the script by the number of curves T/HIS already has defined before the script is executed. multiple #1 10 tag x_mul_* e.g. operate would multiply internal curve number 1 by 10 if T/HIS didn’t contain any curve definitions when the script was run. If T/HIS already contained 100 curves then the same command would multiple internal curve 101 by 10. This means it is possible to play a script containing curve numbers multiple times within a session without having to either delete all the existing curves or modify the script each time. Page 7.32

223 User manual Version 15.0, May 2018 T/HIS 7.7 CURVE GROUPS Curve groups can be defined within FAST-TCF scripts using the keyword. After a curve group has been cgroup defined in a FAST-TCF script it can then be used as an input to some FAST-TCF commands. Each curve group should be given a unique name within the FAST-TCF script. Third following notes Keyword Second word word word create name - Create a curve group called "name". If the name contains any spaces then it cgroup should be enclosed in quotes ("name with space") curve list Adds a list of curves to the curve group called "name". If the name contains any name add spaces then it should be enclosed in quotes ("name with space"). The curve list should be a list of curve tags. Removes a list of curves from the curve group called "name". If the name contains remove name curve list any spaces then it should be enclosed in quotes ("name with space"). The curve list should be a list of curve tags. cgroup create group_1 e.g. (Create a curve group called "group_1" cgroup add group_1 curve_1 curve_2 (Add curves with tags "curve_1" and "curve_2" to group "group_1") cgroup create "Group 2" (Create a curve group called "Group 2") cgroup add "Group 2" curve_1* Add all curves with a curve tag containing "curve_1" to group "Group 2" cgroup remove "Group 2" curve_11 Remove curve with tag "curve_11" from group "Group 2" To use a curve group as the input to another FAST-TCF command the curve group name is preceeded by an &. If a curve group name contains spaces then the name should be enclosed in double quotes and the & should be before the first ". multiple &group_1 10 tag output_* operate e.g. (Multiple all curves in curve group "group_1" by 10 and tag the outputs as output_1, output_2 ..._) operate multiple &"Group 2" 10 tag output_* (Multiple all curves in curve group "Group 2 " by 10 and tag the outputs as output_1, output_2 ..._) Curve Groups can currently be used as p e • a t e commands The first curve input in all of the o r c u r v e r a n g e functions. • Within the list of curves specified as input to y d s p l a i command. • To select a group of curves for the Outputting curves to T/HIS curve files and CSV files. • Page 7.33

224 T/HIS User manual Version 15.0, May 2018 7.8 PERFORMING FAST-TCF CURVE OPERATIONS Description following words keyword Curve operation oper oper command + necessary words (depending on operation) Many curve processing operations and functions are available. The syntax is common for all types of curve operation: the first word is ’oper’ and is followed by: 1. the operation/function name e.g. ADD, INT. 2. the required number of arguments for the operation, e.g. ADD requires two arguments, a curve and either a curve 3. or a value. the remainder of the line may contain optional requests. 4. 5. any optional requests can occur after the arguments. curve numbers must be in the format: # 6. An output curve is always needed - for operation commands such as hic, hicd, tti, 3ms, err, the curve will be 7. copied and the operation is executed on the copied curve. 8. A curve tag containing a wildcard or a curve group can be specified as the first curve input for any curve operation. If a curve tag contains a wildcard or if a curve group is specified then the curve operation will be repeated for each curve that either the tag matches or is in the curve group. e.g. oper hic node_acc 1.0 15E-3 label Hic-ed node accn (label) (curve tag) (15ms period) (hic) (scale=1.0) In T/HIS 9.2 onwards, the user can operate on multiple input curves (only the first curve can be multiple at the : acc moment) using the wildcard "*". For example, to multiply all curves starting with the tag e.g. oper mul acc* 9810.0 (multiply) (on all curves with tag acc*) 7.8.1 Standard operation commands Description keyword operation following notes additional following words command word #1 word #2 curve #1 oper - Absolute value abs - curve #1 - add oper Add Y curve #2 or constant curve #1 curve #2 or Add X oper adx - constant oper cli curve #1 x min value / Input requires all 4 values, "auto" sets the Clip curve x max value / value automatically "auto" "auto" y min value / "auto" y max value / "auto" oper curve #2 - Combine com curve #1 curve #1 curve #2 oper Concatenate cat - curve #1 - dif oper Derivative - curve #1 reference db Convert a curve to dB oper db value db(A) dba curve #1 Apply narrow band A weighting narrow oper Apply octave band A weighting octave oper Div Y curve #1 curve #2 or - div constant dix curve #1 curve #2 or Div X - oper constant Error curve #1 curve #2 - Value is stored with the output curve err oper calculation curve #1 - - int Integral oper lsq curve #1 - - Least squares oper map curve #2 - curve #1 Map oper mul curve #1 curve #2 or Mul Y - oper constant Page 7.34

225 User manual Version 15.0, May 2018 T/HIS curve #1 curve #2 or oper - Mul X mux constant nor - Normalise oper curve #1 - curve #1 oper Convert a curve from "narrow" band to octave Octave linear oct rms either Octave or 1/3rd Octave bands. db linear mean Value for each band can be calculated db using either mean or RMS values, and the rms third linear input can either be linear or in dB. db linear mean db curve #1 - oper Order ord - - curve #1 - rec oper Reciprocal Reverse - oper rev curve #1 - curve #1 averaging - Rolling average oper r-av If the averaging window is undefined window or set to 0.0 then the y-values at each point are calculated by averaging all of the proceeding curve points. If the averaging window is set to T then the y-values at each point are calculated by averaging between -T/2 and +T/2. smoothing curve #1 Factor must be an integer Smooth smo oper - factor curve #1 str - oper Stress "true" or "engineering" curve #2 or - curve #1 sub oper Sub Y constant curve #1 curve #2 or oper - Sub X sux constant curve #1 X value Y value oper Translate tra curve #1 - v2d Vector 2D oper curve #2 vec curve #2 curve #3 oper Vector mag curve #1 win curve #1 "han", "cos", lead in (only Window oper Writes out 2 curves for "cos" "exp" option) zer Zero curve (X - Shifts curve to 0,0 (X and Y values) oper curve #1 - and Y) zero_x - - Shift curve to 0,Y (X only) Zero curve (X oper curve #1 only) Zero curve (Y - - curve #1 oper zero_y Shift curve to X,0 (Y only) only) 7.8.2 Maths operation commands keyword operation Description following word following word additional notes #2 command words #1 acos - - Arc cosine oper curve #1 curve #1 - asin Arc sine oper - atan - - oper Arc tangent curve #1 cos curve #1 - - Cosine oper log10 oper - Log base 10 curve #1 - log10x - - oper curve #1 Log base 10 (X) curve #1 - Natural Exp oper exp - log curve #1 - - oper Natural log logx curve #1 - - Natural log (X) oper pow oper - Power curve #1 nth power sin - - oper Sine curve #1 sqr curve #1 - - Square root oper tan curve #1 - - oper Tangent Page 7.35

226 T/HIS User manual Version 15.0, May 2018 7.8.3 Automotive operation commands Description following additional notes operation following keyword command words word #2 word #1 offset acu oper time period Delta V curve #1 asi Accn z curve # Accn y curve # word6 = acceleration Acceleration severity oper Accn x curve # index conversion factor word7 = x limit word8 = y limit word9 = z limit cut off Butterworth filter order oper but curve #1 frequency curve #1 - C60 filter oper c60 - - curve #1 - c180 oper C180 filter C600 filter - oper c600 curve #1 - curve #1 - - C1000 filter oper c1000 curve #1 Clip value Label displayed on oper cva Value is stored with time window (optional) screen the output curve Exceedence - oper curve #1 auto / pos / neg exc - curve #1 - fir oper Fir filter Hic time period Value is stored with oper hic curve #1 division scale the output curve factor curve #1 hicd Hicd time period Value is stored with oper division scale factor the output curve Neck injury criteria Shear curve # word6 = Fzc tension Moment curve # Axial curve # nij oper word7 = Fzc compression word8 = Myc flexion word9 = Myc extension word10 = Distance from joint reg curve #1 new dt value - Regularise oper THIV oper Accn x curve # Accn y curve # Yaw rate curve # word6 = Horizontal thi distance word7 = Lateral distance word8 = Head to vehicle distance Upper rib curve oper Lower spine curve # Value is stored with Lower rib curve TTI tti # # the output curve constant A constant B ECER95 method oper Viscous criteria ECER95 curve #1 vc Viscous criteria IIHS constant A constant B IIHS method oper vc2 curve #1 corr curve #1 curve #2 Value is stored with Curve Correlation (strict) oper strict the output curves oper loose curve #1 curve #2 Value is stored with Curve Correlation (loose) corr the output curves Weighted Integrated oper wif curve #1 curve #2 - Value is stored with the output curve Factor Curve Correlation (WIFAC) 7.8.4 Seismic operation commands operation following notes following keyword additional Description words word #1 command word #2 ad Accn to disp - - oper curve #1 spectra oper av curve #1 Accn to vel - - spectra dv curve #1 - - oper Disp to vel spectra oper da curve #1 Disp to accn - - spectra oper vd curve #1 - - Vel to disp spectra Page 7.36

227 User manual Version 15.0, May 2018 T/HIS va curve #1 - - Vel to accn oper spectra oper - - blc Baseline curve #1 correction curve #1 - ds broadening factor oper Design spectrum - - oper fft FFT curve #1 Non cumulative curve #1 curve #2 - ncp oper P.R. oper curve #1 damping factor sampling factor Sampling must be Response rs spectrum either 30 or 70 7.8.5 Range of curve operation commands Description operation following word following word keyword additional notes #1 command words #2 ave curve #1 curve #2 to curve #n ## "##" ends the curve Average oper list oper curve #2 to curve #n ## "##" ends the curve Envelope env curve #1 list min curve #2 to curve #n ## oper "##" ends the curve Minimum curve #1 list oper curve #1 curve #2 to curve #n ## "##" ends the curve Maximum max list res curve #1 curve #2 to curve #n ## "##" ends the curve Resultant oper list oper curve #1 curve #2 to curve #n ## "##" ends the curve sum Sum list sum curve #1 curve #2 to curve #n ## "##" ends the curve Sum oper list Page 7.37

228 T/HIS User manual Version 15.0, May 2018 7.9 APPLYING EXTRA OPTIONS TO DATA REQUESTS Extra options can be used after a data component extraction, or a curve operation. After the basic request for a particuar component and particular entity have been made, the following extra data on the line is recognised to manipulate the curve further. This includes options to label a curve, scale it, write it out and so on. if the curve label is used, it must be the last input on the line. Each request is executed in the order on the line, e.g. no 54 accel mag xsc 1000 ysc 0.0001 hic lab Head Accn (obtain hic value) (accel mag) (node i.d. 54) (curve label) (scale x and y) no 1 accel mag filter c60 append output.cur (append the curve to a file) (filter with C60) (accel mag) (node i.d. 1) no 1 accel mag tag node_1_acc (accel mag) (tag the curve "node_1_acc" for ease of use later in the script) (node i.d. 1) following notes following extra option Description word #1 word #2 word - Curve is squared and then square rooted to remove -ve 3ms clip 3ms - values Curve is truncated around 3ms values - only 3ms part is left - Appends into curve file, if it doesn’t exist - create it app Append into file filename - curve #2 Combine com Y-value curve #1 vs X-value curve #2 - Copy will overwrite any previous instance of the file Copy into file cop filename curve #2 err Error function - HIC hic, hic15, hicd - - Curve is squared and then square rooted to remove -ve values, an identical curve is outputted fil - fir Filtering c60 c180 c600 c1000 scale factor X scale factor - xsc Y scale factor ysc scale factor - label word #2 etc Keyword and label must be at the end of the line Label lab label word #1 - Invalid words: "style", "xax", "yax", "title" tag word Reference tag tag ASCII file ASC - - request LSD - LSDA file - request THF THF file request - - - - XTF XTF file request 7.9.1 Using extra options on multiple curve outputs From version 9.2 onwards multiple curve outputs can be generated from one FAST-TCF input line. Unfortunately most of the extra options displayed below will NOT work on these multiple outputs. However, support has been added to e c t i o n 7 . 6 . 2 ) allow tagging and labeling of all the multiple curves outputted in one go (see S Page 7.38

229 User manual Version 15.0, May 2018 T/HIS 7.10 Setting properties for curves The folowing options can be used to set up properties for curves. 7.10.1 Setting curve Labels, Titles and tags fourth word notes Description second word keyword third word label word 2 etc curve # or tag lab Specifies a new curve label Curve Label label word 1 Specifies a new curve tag Curve Tag - tag curve # or tag tag Curve Title tit curve # or tag label word 1 label word 2 etc Specifies a new curve title label word 2 etc Specifies a new x -axis label Curve X axis label xla curve # or tag label word 1 label word 2 etc yla Curve Y axis label curve # or tag label word 1 Specifies a new y-axis label - - puts the curve on the 1st y axis curve # or tag y1 1st Y axis 2nd Y axis puts the curve on the 2nd y axis y2 curve # or tag - - model # or ’all’ "prefix string" sets the user defined model prefix prefix User defined model prefix model From version 9.4 onwards curve properties such as the minimum and maximum values can be displayed in the legend area as well as within the graph area. The following commands use a new properties keyword and can be used to specify the font, colour and background used to display values as well as selecting which values are displayed on each curve. 3rd word 5th 6th word 7th 4th word notes Keyword 2nd word word word font format properties sets up font used to display curve properties - hm standard 8 hb 10 colour 12 cm fonts available: cb 14 hm - helvetica medium tm 18 cb - courier bold tb 24 tm - times new roman medium etc... default default font sizes in pt: 8, 10, 12 etc... background - - - Set a background colour for the text standard colour integer - Set the background transparency transparency - (0-100) on/off - Set a border colour round the text and turn it on/off border standard - colour - Turn on/off a line connecting the text to the min/max - on/off arrow - value location - - Only display the y value num y_only - - - Display both the x and y values on a single line num x_y - - Display both the x and y values on separate lines - - xy num value - Set the unit format to one of automatic, general, - - scientific for graph (n) - m Set the number of decimal places displayed for the y precision - - axis values to (m) in graph (n) - Turn off the display of curve values in the legend area properties - format legend - off - Append curve values (min,max,average ...) to the curve - append - labels in the legend. - - Add a 2nd line to the legned for each curve containing 2nd - the curve values (min,max,average ...). ## Turn on/off the display of one of the following curve maximum curve #1 on/off curve #2 properties in the legend. Input one or more curves and minimum terminate the list with ## average other maximum - display curve maximum value minimum - display curve minimum value average - display curve average value other - display other curve values Page 7.39

230 User manual Version 15.0, May 2018 T/HIS off properties curves format - Turn off the display of cuvre values in the graph area - - Display the minimum/maximum value for all of the - - summary - curves currently visible - Display minimum/maximum values for each curve that all - - is currently visible on/of - Turns on/off the display of one of the following curve smaximum - summary summary properties sminimum lmaximum smaximum - highlight the maximum value for all the lminimum curves displayed sminimum - highlight the minimum value for all the curves displayed lmaximum - label the maximum vlaue for all the curves displayed lminimum - label the minimum vlaue for all the curves displayed on/off Turns on/off the display of one of the following curve curve #1 smaximum ## curve #2 summary properties. Input one or more curves and sminimum terminate the list with ## lmaximum lminimum smaximum - highlight the maximum value for each other curves sminimum - highlight the minimum value for each curves lmaximum - label the maximum vlaue for each curves lminimum - label the minimum vlaue for each curves other - label other curve values Page 7.40

231 User manual Version 15.0, May 2018 T/HIS 7.11 Defining Datums 7.11.1 Creating Datum Definitions The following options can be used to setup DATUM definitions keyword notes second word Starts a Datum definition start datum Specifies the datum acronym acronym acronym label label Specifies the datum label type Defines the datum as a constant x value constant_x Defines the datum as a constant y value constant_y constant_y2 Defines the datum as a constant y2 value Points Defined the datum as a set of x,y points Specifies the value for a constant x or y datum value value num_points #points Specifies the number of points used to define a datum, followed by pairs of x,y values. x1,y1 y2,y2 e c t i o n 7 . 1 2 . 1 . line_colour ) Specify the line colour used to display the datum line (or none) colour (see S 2 S c t i o n 7 . 1 2 . 1 . 1 ) Specifies the line style used to display the datum line (or none) line_style style (see e 2 e t i o n 7 . 1 c . 1 . 3 ) Specifies the line width used to display the datum line (or none) width (see line_width S S e c t i o n 7 . 1 2 . 1 . 2 ) Defines the colour used to fill above/right of the datum line fill_colour1 colour (see S colour (see t i o n 7 . 1 2 . 1 . 2 ) Defines the colour used to fill below/left of the datum line fill_colour2 e c label_font Define the font used to display the label 8,10,12,14,18,24 label_size Define the font point size used to display the label e c t i o n 7 . 1 2 label_colour 1 . 2 ) Define the colour used to display the label colour (see S . label_position Position label at centre above line Above Centre Above Left Position label on left above line Above Right Position label on right above line Below Centre Position label at centre below line Position label on left below line Below Left Below Right Position label on right below line None Turn off label display Position label on left in middle Middle Left Position label on left at top Top Left Bottom Left Position label on left at bottom Middle Right Position label on right in middle Position label on right at top Top Right Bottom Right Position label on right in middle point number Position label at datum point label_point end_datum Ends a Datum definition. Each DATUM definition must start with a "start_datum" keyword and end with a "end_datum" keyword. Any lines between a "start_datum" and "end_datum" keyword that do not form part of a datum definition are ignored. The following creates a DATUM definition at Y=1000.0 with a label "Hic Limit", the area below the line is filled in and the area above is filled in GREEN RED. START_DATUM ACRONYM datum_1 LABEL Hic Limit TYPE constant_y VALUE 1000.000000 LINE_COLOUR green LINE_STYLE solid LINE_WIDTH normal FILL_COLOUR_1 red FILL_COLOUR_2 green LABEL_FONT default LABEL_SIZE automatic LABEL_COLOUR foreground LABEL_POSITION default END_DATUM Page 7.41

232 T/HIS User manual Version 15.0, May 2018 d t m f i l e c a n b e r e a d i n u s i n g t h e ’ i n c . k e y w o r d , e . g . Alternatively a * ’ inc C:\my_datum_file.dtm 7.11.2 Adding Datum Lines to Graphs Multiple DATUM definitions can be added to each graph using the datum acronym notes Keyword 2nd word 3rd word Adds the datum with the acronym to the currently selected graphs add datum acronym datum add maximum Add datum with the acronym "maximum" to all selected graphs Deselect all graphs (see S layout graph select none t i o n 7 . 2 ) e c S Select graph 1 (see t i o n 7 . 2 ) layout graph select 1 e c datum add maximum Add datum with the acronym "maximum" to graph 1 (currently selected) Add datum with the acronym "minimum" to graph 1 (currently selected) datum add minimum 7.11.3 Removing Datum Lines from Graphs Multiple DATUM definitions can be added to each graph using the datum acronym 3rd word 2nd word notes Keyword datum remove acronym Removes the datum with the acronym from the currently selected graphs Remove datum with the acronym "maximum" from all selected graphs datum remove maximum S e c t i o n 7 . 2 ) layout graph select none Deselect all graphs (see 2 S c t i o n 7 . e ) layout graph select 1 Select graph 1 (see Remove datum with the acronym "maximum" from graph 1 (currently selected) datum remove maximum datum remove minimum Remove datum with the acronym "minimum" from graph 1 (currently selected) Page 7.42

233 User manual Version 15.0, May 2018 T/HIS 7.12 FAST-TCF IMAGE OUTPUT OPTIONS The options to generate images can be split into 5 sections: Setting Curve Style Setting Curve Styles by Model Plot setup Curve Display Image Generation 7.12.1 Setting Curve Styles keyword following words Description second word style options Plot style setup style style name style options curve number or tag stylec Individual curve style This section explains how to set up the styles for the curves in a plot. The two types of syntax available in the table above effect when and how the curves are styled. The "plot style setup" (keyword style) allows the user to define a plot-specific styling that applies the styles to the curves only when they are requested for a plot. It is independent of the curve id, but dependent on the order the curves are requested in the plot command. The style is given its own "tag" which the user can request on the image FAST-TCF line. This is useful for producing plots from FAST-TCF that all have the same curve appearance. For the following words, each space represents a new curve style definition. The styles for each curve are defined by the type keywords below, separated by commas. e.g. style ENERGIES solid,green,norm dash,blue,heavy sol,bold,yel,500 (curve #3) (curve #1) (style name) (curve #2) When a plot is requested, FAST-TCF will apply the curve styles to the list of curves (in order) in the plot. So in the example above, the first curve would appear green, the second curve blue and the third yellow. The "individual curve style" (keyword stylec) is the more traditional way of styling a curve that a T/HIS user would be more familiar with - FAST-TCF styles the single curve id instantly. The user can only define one style at a time. e.g. stylec #12 solid,green,norm (style curve number 12) style to apply 7.12.1.1 Line Styles default word options Style options solid Line style solid dash none Page 7.43

234 T/HIS User manual Version 15.0, May 2018 7.12.1.2 Line Colours Style options default word options Line colour white dependent on curve # red green blue cyan magenta yellow orange turquoise indigo lime sky pink black foreground background 7.12.1.3 Line Width Style options default word options normal fine Line width normal bold heavy 7.12.1.4 Line Symbols word options default Style options Line symbols triangle dependent on curve # square diamond hourglass cross circle star dot null - Symbol frequency frequency number 7.12.2 Setting Curve Styles by Model From version 11 onwards a new option can be used to colour all of the curves belonging to a model in a single operation. Description keyword second word following words model number style options style_m Colour curves by model command (see S e c t i o n 7 . 1 2 . 1 ) The available style options are exactly the same as for the stylec e.g. style_m 2 solid,green,norm model number 2 style to apply would set all the curves belonging to model 2 to solid, green lines using the default line thickness. Page 7.44

235 User manual Version 15.0, May 2018 T/HIS 7.12.3 Plot setup Description following words keyword setup Plot setup plot setup words These options set the appearance of any plots that are created afterwards. They are to do with the general appearance of l e d e f i n i t t o n l i n e and on the i m a g e s the plot rather than the curve itself. The curve appearances can be set up with the y i t t i n g l i n e p l o . All following words must be on the same line. If the "on" or "off" is missed out from the following word to the default (this helps with backwards compatibility (where applicable) then FAST-TCF will take the opposite issues but can also make a script more compact). ax bold reverse grid on e.g. setup line bold (reverse foreground and background) (bold lines) (grid on) (bold axes) setup border off show 3ms size 250 double on (size = 1000 x 650 pixels) (double axes on) (no border) (3ms window on) fonts title hb 24 red setup (title: helvetica bold 24pt, in red) Plot setup following plot setup notes description word(s) word fine ax for colours - see standard list below Axis thickness normal bold heavy standard colour bac Background standard colour for colours - see standard list below for colours - see standard list below Border fine bo normal bold heavy standard colour on or off do Double yaxis on or off on or off fix Fix line styles this overwrites any style definitions sets up fonts for the image: [xl]abel Fonts fon hm 8 Colour 10 hb [yl]abel 12 cm fonts available: [y2l]abel cb 14 hm - helvetica medium 18 tm cb - courier bold [xu]nits 24 tb tm - times new roman medium etc... [yu]nits [y2u]nits font sizes in pt: 8, 10, 12 etc...for colours - see standard list below [t]itle [le]gend [all] for colours - see standard list below for standard colour Foreground Format style fo default automatic full Grid on fine gr normal bold heavy on or off Line thickness li on Turn on plotting of curve lines off Turn off plotting of curve lines (symbols drawn) fine set the line thickness to 1 pixel normal set the line thickness to 2 pixels bold set the line thickness to 4 pixels set the line thickness to 8 pixels heavy Page 7.45

236 T/HIS User manual Version 15.0, May 2018 Adds a "model" prefix to the entity IS. auto Model numbers on labels. mn on If set to the "auto" only puts the model number on when there is off more than 1 model in T/HIS prefix Model prefix format id Set the model prefix to the model ID Set the model prefix to the job directory dir thf Set the model prefix tot eh amne fof the base THF/model file Set the modle prefix to the user defined one. user re on or off Reverse black white integer Size of plot si xsize = value x 4, ysize = value x 3 (aspect fixed) so on or off Solid x and y axis Symbols on sy on or off - xau X grid controls x grid increment xin x grid offset xoff - Y grid controls yau y grid increment yin y grid offset yoff Axis type, - xlin Swap the x axis to a linear scale Linear/Logarithmic Swap the x axis to a logarithmic scale xlog - - Swap the y axis to a linear scale ylin - Swap the y axis to a logarithmic scale ylog - Swap the second y axis to a linear scale y2lin y2log - Swap the second y axis to a logarithmic scale Turns ON/OFF display of graphs TOP axis top axis on or off Axis display Turns ON/OFF display of graphs RIGHT axis on or off bottom axis plot setup word following word(s) notes Plot setup description Set the title for the graph. Graph Ttitle title "title string" Turn on the display of the graph title - title_on title_off Turn off the display of the graph title - auto Set the x axis label to be defined automatically x_lab X Axis Properties manual Set the x axis label to a user defined label Set the user defined x axis label "label string" on Turn on the display of the x axis label off Turn off the display of the x axis label x_min auto Set the x axis minimum value to automatic Set the x axis minimum value numerical value auto Set the x axis minimum value to automatic x_max numerical value Set the x axis minimum value x_unit Set the x axis unit label to be defined automatically auto manual Set the x axis unit label to a user defined label Set the user defined x axis label "unit string" on Turn on the display of the x axis unit label off Turn off the display of the x axis unit label Y Axis Properties Set the y axis label to be defined automatically auto y_lab manual Set the y axis label to a user defined label Set the user defined y axis label "label string" Turn on the display of the y axis label on Turn off the display of the y axis label off y_min auto Set the y axis minimum value to automatic numerical value Set the y axis minimum value y_max auto Set the y axis minimum value to automatic numerical value Set the y axis minimum value auto y_unit Set the y axis unit label to be defined automatically manual Set the y axis unit label to a user defined label "unit string" Set the user defined y axis label on Turn on the display of the y axis unit label Turn off the display of the y axis unit label off Page 7.46

237 User manual Version 15.0, May 2018 T/HIS y2_lab auto Set the second y axis label to be defined automatically 2nd Y Axis Properties Set the second y axis label to a user defined label manual Set the user defined second y axis label "label string" on Turn on the display of the second y axis label Turn off the display of th seconde y axis label off Set the second y axis minimum value to automatic auto y2_min Set the second y axis minimum value numerical value y2_max Set the second y axis minimum value to automatic auto Set the second y axis minimum value numerical value Set the second y axis unit label to be defined automatically y2_unit auto Set the second y axis unit label to a user defined label manual Set the user defined second y axis label "unit string" on Turn on the display of the second y axis unit label off Turn off the display of the second y axis unit label 7.12.3.1 Deprecated Plot Setup Options The following setup commands are still supported in Version 9.4 but they have been superseded by the new "properties" c t i o n 7 keyword (see 1 0 ) S e . following word(s) Plot setup description plot setup word notes for colours - see standard list below standard colour Set colour of min/max value min_max show max Turn on/off the highlight of the Maximum Value on Show max value off Turn on/off the highlight of the Maximum Value Show max value show min Display x value at Maximum xmax Display X value at max show Display x value at Maximum Display X value at min xmin show Display Y value at max ymax Display y value at Maximum show ymin Display y value at Maximum Display Y value at min show 3ms show Show 3ms Clip Widow Show HIC Widow hic show 7.12.4 Curve Display display The list of curves displayed in each graph is controlled by the keyword. The list of curves can contain a mixture of curve tags, curve numbers (prefixed with #) or curve groups. If curve tags are specified in the curve list then they can contain wildcards. second notes keyword word curve list The curve list can contain a mixture of curve tags, curve numbers (prefixed with #) or curve groups. If curve display tags are specified in the curve list then they can contain wildcards. keyword after the curve list. display The following option can be appended to the Additional following word notes following word format #2 format word #1 - Curves have styles applied in the order they were style name sty Style application defined In version 9.4 the the following additional options that can be appended to the display keyword after the curve list l o t S e t u p are still supported although there use is not recommended. Equivalent commands have been added to the P commands along with a number of new options. Additional following word following word notes format #1 word format #2 title word #2 etc Takes following words as a title until another title word #1 tit Title keyword is found if numeric #2 - xaxis X axis options xax Takes following words as a label until another if numeric #1 - xaxis max keyword is found min otherwise xaxis label otherwise xaxis label Page 7.47

238 T/HIS User manual Version 15.0, May 2018 if numeric #1 - yaxis Y axis options yax Takes following words as a label until another if numeric #2 - yaxis max min keyword is found otherwise yaxis label otherwise yaxis label if numeric #1 - yaxis 2nd Y axis options 2ya Takes following words as a label until another if numeric #2 - yaxis keyword is found min max otherwise yaxis label otherwise yaxis label e.g. display curve_2 curve_1 (display "curve_1" and "curve_2") display &"Curve group 3" title SLED TEST \ xax Time \ curve_2 yax Displacement (display "curve_2" and all the curves in "Curve group 3". Set the plot title and x and y axis labels.) 7.12.5 Image Generation Many different types of image format can be outputted from FAST-TCF. In T/HIS15.0 onwards the FAST-TCF image output options have been revised to allow multiple graphs and pages to e c t i o n 7 . 1 2 be selected for output. The old pre 9.3 syntax (see 6 ) is still supported for existing scripts but users are . S strongly advised to move to the new command format where all options are prefixed with either the "display" or "image" keyword. Description keyword following words Image output image image options Page 7.48

239 User manual Version 15.0, May 2018 T/HIS The available image output options are second third fourth notes keyword Option format word word word word Bitmap (8 bit) bit / bmp filename all / active / image Generate an image containing all graphs / all graph active graphs / graph number ’n’ ’n’ all / current page Generate an image for each page / the current page / page number ’n’ / ’n’ Bitmap (8 bit image bit_u / filename graph Generate an image containing all graphs / all all / active / uncompressed) bmp_u active graphs / graph number ’n’ ’n’ Generate an image for each page / the current page all / current page / page number ’n’ / ’n’ Generate an image containing all graphs / all graph Gif (8 bit) image gif all / active / filename ’n’ active graphs / graph number ’n’ page all / current Generate an image for each page / the current / ’n’ page / page number ’n’ all / active / Png (8 bit) image png filename Generate an image containing all graphs / all graph ’n’ active graphs / graph number ’n’ Generate an image for each page / the current page all / current page / page number ’n’ / ’n’ Generate an image containing all graphs / all graph Bitmap (24 bit) all / active / bit24 / image filename bmp24 ’n’ active graphs / graph number ’n’ Generate an image for each page / the current page all / current / ’n’ page / page number ’n’ filename all / active / graph image ppm / pix Generate an image containing all graphs / all Pixel map (24 bit) ’n’ active graphs / graph number ’n’ page all / current Generate an image for each page / the current page / page number ’n’ / ’n’ Generate an image containing all graphs / all Jpeg (24 bit) image jpg / jpeg filename all / active / graph ’n’ active graphs / graph number ’n’ Generate an image for each page / the current all / current page page / page number ’n’ / ’n’ Png (24 bit) graph png24 filename Generate an image containing all graphs / all all / active / image active graphs / graph number ’n’ ’n’ Generate an image for each page / the current all / current page / ’n’ page / page number ’n’ all / active / graph Postscript image ps filename Generate an image containing all graphs / all ’n’ active graphs / graph number ’n’ all / current Generate an image for each page / the current page / ’n’ page / page number ’n’ filename Generate an image containing all graphs / all graph PDF image pdf all / active / active graphs / graph number ’n’ ’n’ Generate an image for each page / the current page all / current / ’n’ page / page number ’n’ In addition to the image formats the following image output options can also be specified Description second notes keyword word Image resolution i_res screen / 2x / Set the resolution to either the same as the screen or 2 or 4 times the screen resolution for image ouptut 4x Postscript /PDF p_res screen / 2x / Set the resolution to either the same as the screen or 2 or 4 times the screen resolution 4x resolution for Postscript and PDF ouptut title string ti Plot title Specify the plot title (postscript / PDF output only) Specify the figure number (postscript / PDF output only) Figure Number figure number fi Orientation land / port Specify the paper orientation (postscript / PDF output only) ori image bmp output1.bmp graph all (generate a bitmap called output1.bmp containing all the current graphs) image jpeg output2.jpg page 3 (generate a JPEG image called output2.jpg containing page 3) image 2x i_res (set the resolution used for all following images to 2 x the screen resolution) Page 7.49

240 T/HIS User manual Version 15.0, May 2018 image ti Run number 2 (set the plot title to "Run number 2" for any following postscript or PDF images) image ori landscape (set the page layout to landscape for any following postscript or PDF images) 7.12.6 Pre 9.3 Image Output The following pre T/HIS 9.3 image output commands are still supported but users are recommended to use the new format described above. Curve styles that have been previously defined can be applied to the curves in the plot, and various other settings can be made with regards to the axes and titles. Images that require a second yaxis need to determine which curves go on which axis. To do this, use a "##" in the curve listing to switch to the second axis. The options are described in the tables below. Curve files can be included within the curves to plot. FAST-TCF detects a curve file to read in using the pattern string ".cur" at the end of the name. The curves are read in, styles are applied, and the image is plotted. The curves are then deleted. The user can use wildcards ("*") in the tag names to select multiple curves for plotting. bit d.bmp #1 #3 CRV2 ## #2 #4 head_accn Title 2nd axis example (Title) (2 curves on 1st yaxis and 3 on 2nd yaxis) Title Head style ONE xax 0 5E-3 bit h.bmp #1 #3 CRV2 Time (XLabel) (Title) (xaxis min and max) (style to apply) (curves) bit l.bmp #1 #100 reference.cur line.cur #1000 style reference (style to apply) (curves and curve files to plot) bmp test.bmp accn* (all curves with tags beginning with "accn") following words following words keyword Description second word curve(s) filename Bitmap bit / bmp additional formatting curve(s) additional formatting Bitmap (uncompressed) bit_u / bmp_u filename filename additional formatting jpg / jpeg Jpeg curve(s) Pixel map ppm filename curve(s) additional formatting filename curve(s) additional formatting B & W postscript post filename curve(s) cpost Colour postscript additional formatting following word notes format following word Additional word #1 #2 format - Style application sty style name Curves have styles applied in the order they were defined tit title word #1 title word #2 etc Takes following words as a title until another Title keyword is found if numeric #2 - xaxis if numeric #1 - xaxis X axis options xax Takes following words as a label until another keyword is found max min otherwise xaxis label otherwise xaxis label yax Y axis options Takes following words as a label until another if numeric #2 - yaxis if numeric #1 - yaxis min max keyword is found otherwise yaxis label otherwise yaxis label if numeric #2 - yaxis if numeric #1 - yaxis 2nd Y axis options 2ya Takes following words as a label until another keyword is found max min otherwise yaxis label otherwise yaxis label Page 7.50

241 User manual Version 15.0, May 2018 T/HIS 7.13 Outputting curve properties to text files, variables and REPORTER These requests output a curve property (eg its maximum Y value) into a specified tabulation file, to a REPORTER variable in a text file, or into a variable within FAST-TCF. variable extra Format variable 2nd description Notes Output 3rd 4th keyword word name type words words word (optional) word word curve property filename if values format varf variable description Tabulation tab needed to output file name # varf filename property Tabulation if values taba format description variable curve name # needed file append to output filename curve Tabulation property Each output is if values format tabc varf variable description name needed appended to the file (csv) # to output current line in the file. description tabcr property curve if values Tabulation format varf variable Each output is filename name file (csv) # to output needed appended to the current line in the file, followed by a carrage return so that the next output starts a new line. variable varf curve FAST-TCF property description if values - format - needed name to output variable # curve property REPORTER var format varf variable description variable if values variable to output name name needed # format variable curve vara property REPORTER if values description variable varf name name needed to output # variable append 7.13.1 Available Curve Properties Various advanced requests can be performed (e.g. first non-zero Y, maximum in a window) and the table below describes them in more detail. Requests which require inputs (e.g. t1 and t2 of a window) take the default values in the table if the following words do not appear to be numbers, or if no following words exist. notes Property to output property value words word - - Minimum x minx - Maximum x maxx - - - Minimum y min - xatmin - X at minimum y - - Y at minimum x yatmin default t1=-1E19 and t2=+1E19 minw t1 and t2 Minimum y in window t1 t2 t1 and t2 xminw X at minimum y in window t1 t2 default t1=-1E19 and t2=+1E19 Maximum y max - - - - X at maximum y xatmax - yatmax Y at maximum x - default t1=-1E19 and t2=+1E19 t1 and t2 maxw Maximum y in window t1 t2 xmaxw default t1=-1E19 and t2=+1E19 X at maximum y in window t1 t2 t1 and t2 Average in window t1 t2 ave default t1=-1E19 and t2=+1E19 t1 and t2 Hic hic - - - - hict1 t1 of Hic window t2 of Hic window hict2 - - - - Hicd hicd - hicdt1 t1 of Hicd window - - t2 of Hicd window - hicdt2 3ms - - 3ms - - t1 of 3ms window 3mst1 - - 3mst2 t2 of 3ms window Page 7.51

242 T/HIS User manual Version 15.0, May 2018 default xvalue=-1E19 Y at X yatx x value xygate X when Y is passed after gate time default yvalue=-1E19, y value & gate time gate=+1E19 nonzero = 1/1000000th of curve X at first non-zero Y xnonz - max xfail - nonzero = 1/1000000th of curve X at last non-zero Y max yfail - Y value at last non-zero Y nonzero = 1/1000000th of curve max - - tti TTI Error Function - Max difference & time max_err - - - Error Function - Difference as a %age of reference pc_err - - - Error Function - Difference as a %age of peak reference pc_max_err av_err - - Error Function - Average Difference Error Function - Average Difference as a %age of peak - - av_max_err reference - - area_err Error Function - Area weighted difference - - Error Function - Max difference & time err Returns curve correlation value correlate Curve Correlation Function 7.13.2 Writing out curve properties to a text "tabulation" file This is achieved using the "tabulation" command. This automatically overwrites any existing file in the output in the input script. If this is not desired then use the "taba" command which directory, but only on the first occurrence will append an existing file on the first tab call. command, which appends the data into csv format on the last line in the file. The "tabc" A 9.2 onwards option is the first call to this command writes a to the file, and the subsequent calls append the end of this line. This enables new line the user to compare runs on a line by line basis in software such as Excel. Some examples of writing out curve properties to a text file are below: e.g. tab output.txt #1 max max y of curve #1 (maximum Y) (description) (curve number) (file output.txt) tab output.txt node_head_accn maxw 1.00E-03 30.00E-3 (file output.txt) (curve tag) (max Y in window) (window t1) (window t2) taba output.txt node_head_accn min (minimum Y) (append output.txt) (curve tag) Properties for multiple curves can be output by specifying either multiple "tab" commands or by using a curve tag containing wildcards or a curve group. e.g. tab output.txt node_* max maximum y value (all curves with a tag starting with node_) (maximum Y) (file output.txt) (description) tab output.txt &group_1 max maximum y value (file output.txt) (all curves in group "group_1") (description) (maximum Y) 7.13.3 Writing out REPORTER variables REPORTER can write curve properties to its reports, so FAST-TCF needs to output a text file that REPORTER can interrogate to find out the curve properties it needs. To tell FAST-TCF to output a REPORTER variable, the keyword "varr" is used (for backwards compatibility "var" is sufficient). Use "vara" to append to an existing file. e.g. varr head_hic #1 hic hic result for head node (REPORTER variable %head_hic%) (curve number 1) (output request) (description) e.g. vara max_y #1 max maximum y value (REPORTER variable %max_y%) (curve number 1) (output request) (description) Page 7.52

243 User manual Version 15.0, May 2018 T/HIS 7.13.4 Setting up new FAST-TCF variables to contain curve properties If you wish to use a curve property as a new variable within FAST-TCF - there are two ways you can achieve this. 1. Use the keyword "varf". This should be used when the user doesn’t also require the value to be outputted into a text file or a REPORTER file. before , "tabc" or 2. line, use the word "varf" just "taba" the description words. Within a "tab" , "varr" The variable name is defined as the word after "varf". The variable value is equal to the return value of the request. The variable can then be used in any subsequent lines of FAST-TCF. to the max of curve #1 is: For instance, the simplest way to set the variable MAX_ACCN varf MAX_ACCN #1 max However, if the user wishes to combine writing a property to a text file and defining a variable in FAST-TCF, this syntax could be used: tab output.txt #1 max varf MAX_ACCN 7.13.5 Format From Version 9.3 onwards the format used to display the value can be controlled by adding an optional "format" keyword after the property to be output and any additional inputs that property requires. The format should be specified directly after the "format" keyword and should use standard "C" programming syntax to specify a floating point format using either f,e,E,g or G format specifiers. e.g. tab output.txt head max max y of curve #1 (file output.txt) (curve tag) (maximum Y) (description) tab output.txt head max format %6.3f max y of curve #1 (curve tag) (maximum Y) (format) (file output.txt) (description) tab output.txt head max format %.3f max y of curve #1 (description) (file output.txt) (curve tag) (maximum Y) (format) Example formats Number Format Output 12.3456 %5.2f 12.35 12.3456 %7.3e 1.2345e+01 12.3456 %7.3E 1.2345E+01 2345678.9 %.0f 2345678 2345678.9 %6.5g 2.3457e+06 2345678.9 %6.5G 2.3457E+06 -0.000013583 %4.3e -1.358E-05 7.13.6 Description From Version 9.3 onwards the description specified as part of the output for a curve property can contain the following keywords that will automatically be replaced with the corresponding curve property. Curve Property keyword {tag} FAST-TCF curve tag {label} Curve label {id} Entity ID that the curve was created from Model ID curve was created from {Model} Page 7.53

244 T/HIS User manual Version 15.0, May 2018 e.g. tab output.txt head max Max accl of node {id} (file output.txt) (curve tag) (maximum Y) (description) tab output.txt head max Model {model} max accl of node {id} (file output.txt) (curve tag) (maximum Y) (description) Page 7.54

245 User manual Version 15.0, May 2018 T/HIS 7.14 FAST-TCF CURVE OUTPUT Curves can be written out to either T/HIS curve files or CSV files from within a FAST-TCF script by using either the "app", "cop", "csv" or "csv2" keyword. third second notes keyword Description word word filename - will overwrite any previous file curve list cop Copy into file curve list - will append any previous file app Append into filename file filename CSV file TYPE curve list will overwrite any previous csv file. CSV has the format csv - 1 X1,Y1,X2,Y2,X3,Y3 last word = auto will overwrite any previous csv file. CSV has the format CSV file TYPE curve list csv2 filename 2 X1,Y1,Y2,Y3 x axis interval is taken from curve #1 if all curves are chosen will overwrite any previous csv file. CSV has the format 2nd last word= x start time X1,Y1,Y2,Y3 start time and interval are defined in the line last word = x axis interval The curve list for all of these commands can contain either curve tags (with or without wildcards), curve numbers (prefixed with #), curve groups or ’*’ to select all curves. e.g. copy output_file.cur curve_1 &"group 1" (Write "curve_1" and all the curves in curve group "group 1" to a new file "output_file.cur") append output_file.cur curve_1 &"group 1" (Append "curve_1" and all the curves in curve group "group 1" to the file "output_file.cur") csv output.csv curve_1* curve_2* (Write all curves with tags that start with "curve_1" or "curve_2" to a CSV called "output.csv") NOTE : There is no limit to the number of curves that can be output to a file but there is a limit to the number of items r v e that can be specified in the curve list (currently 100). If more than 100 curves are to be output to a file then a c u u p containing all of the curves should be created and used within the curve list. Alternatively if the curves are being o g r written to a T/HIS curve file then the first 100 curves can be output using the "cop" keyword and then additional curves can be appended to the file using the "app" keyword. 7.14.1 Specifying curves using Curve Numbers . When outputting curves to a file a range of explicit curve numbers can be specified using the syntax #start:#end This option only applies to curve numbers because curve tag can be defined in an arbitrary order. 7.14.2 CSV files If a CSV/CSV2 file is written out from within a FAST-TCF script then by default it will contain rows containing UNIT information for the curves if UNITS have been defined. This additional information can be turned off if it isn’t required e c t i o n 7 . 5 . 5 ) (see S Page 7.55

246 T/HIS User manual Version 15.0, May 2018 7.15 FAST-TCF ADDITIONAL 7.15.1 T/HIS preferences and additional commands There are a number of additional commands that improve the functionality of FAST-TCF such as labeling, resetting values, tagging curves and defining variables. All following words must be on the same line. The variables section is o w . b explained in more detail l e hic 3ms report e.g. err (FAST-TCF.clp written to) (FAST-TCF.hic written to) (FAST-TCF.err written to) define file lsda (define lsda as default file) output.cur copy #1 (copy curve #1 into file name) (file name) 30_Nov_2005 var define date (variable name) (variable value) (define variable) third word notes Description keyword second fourth word word - - for use in interactive playback Autoscale plot ac - - Auto update plot auto on or off - whether to auto update the plot on data read / font updates and so on. Please note this is reset to ON after any font definition. - - for use in interactive playback Plot graphs plot - curve name app will append any previous file Append into file filename - - - - condense Condense Condense the curve numbers on or off convert Convert Automatically convert curves from ms units to s(econds) before applying any filters and then convert back again. def var name n value s e e F A S T - T C Define v a r i a b l e s s e c t i o F (without "$") FAST-TCF variable Define error fail def err error value - default is 10 errors before T/HIS will stop (integer) value def Define default file will always check that t/his can get the output from this file, if lsda file - not then the original default file will be chosen (see data ascii extraction table). This file can still be overwritten on the xtf actual input line thf default tit title word 1 title word def Define default title 2 etc def user font size Define user line rest of line is the label user line (8 to 24) number (1 to 6) surf Define surface shell / beam / layer def t = top, m = middle, b = bottom, or use a number for the 4 integration point (see e c t i o n 7 . 4 . S . 3 ) integration thickshell number ssd_comp amplitude / def - Define which value is read for each data component in a Define ssd Steady State Dynamics (ssd) analysis (see S e c t i o n 7 . 4 . 2 . 2 ) angle component CSV field used to change the field separator before reading a CSV file. comma def csv_separator separator tab space del Delete - - Delete curves curve #1 to curve #n - - - stops reading file here Exit reading file exit model # or "no" - - sets the model number for extracting curve data Model set mod or "all" reg Regularise time interval, or - - sets the auto regularise interval and turns it on, or turns it off "off" filtering Page 7.56

247 User manual Version 15.0, May 2018 T/HIS rep - - To turn off see the reset2 keyword 3ms Report files written asi err hic thiv tti - - Reset - reset1 All curves and curve tags deleted - Plot setup defaulted and all style definitions removed. Report reset2 - - files not written - Variable names and default title removed reset3 - - 7.15.2 Limits limit Description 80 words word limit per line include file name 150 characters tag length 60 characters 7.15.3 Variables Variable names can only have "a-z", "0-9" and "_" in them. Variables can be inserted anywhere in the script, FAST-TCF will replace any variables with their corresponding values before processing the line, for example: define var output displacement define var nod_id 12345678 define var xscale 0.001 node $nod_id $output x xscale $xscale converts into: node 12345678 displacement x xscale 0.001 Variable definitions can contain several words or other varaibles, and these will be joined together to form the final variable value, for example: define var day 31st define var month january define var year 2099 define var date $day _ $month _ $year date with value 31st_january_2099 creates the variable Because variables cannot have anything other than "a-z", "0-9" and "_" in them, it is possible to use variables within strings: define var analysis run01_vers2 read january_$analysis.cur converts into read january_run01_vers2.cur However, sometimes the user may want to insert a variable within other alphanumeric words, in these circumstances use a "$$" terminator to designate the end of the variable name: define var analysis xyz_run01 read $analysis$$_x.cur converts into read xyz_run01_x.cur There are several built in variables, and these depend on the system and command line used to run FAST-TCF, they can be checked on the dialogue T/HIS prints before starting: Page 7.57

248 T/HIS User manual Version 15.0, May 2018 $run_name This is the basename of the key file in for the 1st model directory (should there be one). If a (where N $run_name N script refers to multiple models then is the model number) can be used for each model. This is the full pathname of the directory containing the output files for a model. If a script refers $run_dir $run_dir to multiple models then (where N is the model number) can be used for each model. N This is the title of the analysis found in the output files. If a script refers to multiple models then $run_title N $run_title N (where is the model number) can be used for each model. This is the name of the FAST-TCF that is being run $ftcf_script $ftcf_script_dir This is the name of the directory containing the FAST-TCF that is being run $ftcf_dir This is the name of the current working directory. $ftcf_path This is the full pathname of the current working directory. This is the full pathname of the directory that T/HIS was started in. $ftcf_startin_dir FASTTCF called ===================================================== Fasttcf script: C:\example\test.inp tmp file: C:\example\other_folder\test.tmp tcf file: C:\example\other_folder\test.tcf report file: C:\example\other_folder\test.rep $FTCF_SCRIPT variable: test.inp $FTCF_SCRIPT_DIR variable:C:\example\ $FTCF_DIR variable: other_folder $FTCF_PATH variable: C:\example\other_folder $RUN_TITLE var: lg09 : Large Test 9: Belted sled test $RUN_NAME var: new_lg09 $RUN_DIR var: E:\test\sled $RUN_TITLE1 var: lg09 : Large Test 9: Belted sled test $RUN_NAME1 var: new_lg09 $RUN_DIR1 var: E:\test\sled 7.15.4 Notes and Presumptions • Curves must be in the format: # to differentiate between curves and constants • Any image will be overwritten if it already exists in the run area • Curves are always labeled and then written to files, any other options are done in the order of input on the line • If your line is getting too long, use a "\" to designate a continuation line - FAST-TCF will then join the lines together before processing Page 7.58

249 User manual Version 15.0, May 2018 T/HIS 8 Quick Find Introduction Quick Find can be used to search for and quickly: Go to menus / functionality • • Open tutorials It can be accessed by clicking on the magnifying glass above the model functions menu or by pressing the ’#’ key. Typing in the textbox brings up a list of found items that match the entered text. Items in the list can be selected by clicking on them or by using the up and down arrow keys and pressing enter. The selected item will then perform the task, e.g. open a menu. Fuzzy Matching A ’fuzzy’ matching method is used to match the entered text with the searchable items. It judges that something has matched when the characters of the entered text appear in the same order as the item that can be searched for. For example if you type ’c60’ then ’Tools->Automotive-> C60 ’ would be a match, but ’Tools->Automotive-> C1000 ’ Page 8.1

250 T/HIS User manual Version 15.0, May 2018 wouldn’t because the ’6’ doesn’t match. (Note that the search is case insensitive). Additionally, if the entered search pattern contains spaces and the characters do not all match in the same order then T/HIS will look to see if the words can be swapped to find a match. For example ’back image’ would find ’Image->Background’ even though the words do not appear in that order. This hopefully makes it easier to find items as you do not need to know the precise search term. The found items are listed in order of how closely they match the entered text so items that more closely match appear nearer the top of the list. It determines this by assigning a score to each match, with higher scores given to items that contain consecutively matched characters and if the characters appear at the start of words. Search Terms The default search term associated with a menu item is the trail of menus/buttons you would need to manually open/press, e.g. to get to the C60 filter you would need to go to Tools, then Automotive then C60, hence the search term ’Tools->Automotive->C60’. In addition, some menus have alternative search terms associated with them. For example C60 can also be found from the alternative text ’SAE class 60 filter’: This can be useful for cases where you don’t know or can’t remember under which menu some functionality lives. Note that the alternative text appears in brackets under the default search term so you can see how you would get to the menu manually. If you can’t find menus that you know exist in T/HIS it is likely that you are using different terminology to what we expect. If so, please contact Oasys Ltd and we can add alternative text based on what you are entering as your search text. Alternative text associated with a menu may also describe some of the features on a menu. For example the text colour is set in the Display menu, but if you didn’t know this it would be hard to find. In this case the alternative text ’Text Colour’ is associated with this menu: Page 8.2

251 T/HIS User manual Version 15.0, May 2018 Tutorials The full installation of the Oasys Ltd software contains some pdf tutorials for various features within the software. They are installed in the $OA_INSTALL/manuals/tutorials/this directory and can be found and opened using Quick Find. Options There are a few options that can be set to alter how Quick Find works. These can be accessed by pressing the ’Options >>’’ button. • Save settings to the oa_pref file • Set the text colours for matched and unmatched characters Recently selected items are saved by T/HIS and appear higher in the list of available options. By default the last • ten selected items are saved, but this can be changed here. To turn it off set it to zero. • Set the maximum number of found items to display in the list Page 8.3

252 T/HIS User manual Version 15.0, May 2018 Page 8.4

253 User manual Version 15.0, May 2018 T/HIS APPENDICES S A Y N A D a t a C o m p o n e n t s L - - D e H S C u r v e F i l I F o r m a t T - B / / H I C B u l k D a t a F i l e F o r m a t - T S F l t e r i n g D - i t n I r y C r i j e r i a - E u C u r v e C o r r e l a t i o n F - T - E R R O R C a l c u l a t i o n G h e f h " T a _ p r e f " P r e e e r e n c e F i l e - H o W i n d o w s F i l e A s s o c i a t i o n s I - r T I S J a v a S c H i p t A P I - - J T y p e d C o m m a n d s K - Page A.1

254 T/HIS User manual Version 15.0, May 2018 APPENDIX A - LS-DYNA Data Components A.1 Model Data Components The following global data components are available. ASCII Component XTF (xtfile) THF (d3thdt) LSDA (binout) yes yes Time Step DT yes Kinetic energy yes KE yes yes IE Internal energy yes yes yes SWE Stonewall energy yes yes SPE Spring and damper energy yes yes HG yes Hourglass energy yes yes System damping energy SDE yes yes JE yes Joint internal energy yes SIE Sliding interface energy yes yes External work EW yes yes RBE yes Rigid Body stopper energy Total energy yes yes TE yes TER Total/initial energy ratio yes yes yes yes VX Average X velocity yes yes yes Average Y velocity VY yes yes yes yes VZ Average Z velocity yes Time per zone cycle TZC yes yes yes Added mass AM %age Mass increase yes PM yes EKE yes yes Eroded Kinetic energy Eroded Internal energy EIE yes yes yes Eroded Hourglass energy EHG yes yes ER Energy Ratio w/o Eroded yes yes Current Distortional Kinetic Energy DRCE Maximum Distortional Kinetic Energy yes DRMX yes DRCO Convergence Factor yes Total Kinetic Energy DRKE A.2 Part Data Components For Parts the following data components are available. THF (d3thdt) LSDA (binout) ASCII XTF (xtfile) Component yes yes Kinetic energy KE yes yes yes yes IE Internal energy yes yes Hourglass energy HG TE Total energy yes yes yes Page A.2

255 User manual Version 15.0, May 2018 T/HIS yes XM X momentum yes yes Y momentum YM yes yes ZM yes Z momentum VX yes Average X velocity yes yes yes yes yes Average Y velocity VY Average Z velocity yes yes yes VZ yes Mass MA yes yes yes EIE Eroded Internal energy yes ER yes yes Energy Ratio w/o Eroded A.3 Part Group Data Components For Part Groups the following data components are available. LSDA (binout) ASCII Component THF (d3thdt) XTF (xtfile) yes KE Kinetic energy yes yes yes Internal energy IE yes yes yes HG yes yes Hourglass energy TE yes yes yes Total energy yes MA Mass yes yes A.4 Nodal Data Components For nodes the following data components are available. LSDA (binout) ASCII Component THF (d3thdt) XTF (xtfile) yes yes yes TE Temperature yes yes yes DX X Displacement yes Y Displacement DY yes yes yes Z Displacement DZ yes yes yes DM yes yes Displacement Magnitude VX yes yes yes X Velocity yes yes VY Y Velocity yes yes VZ Z Velocity yes yes yes yes yes Velocity Magnitude VM X Acceleration yes yes yes AX yes yes yes AY Y Acceleration yes Z Acceleration AZ yes yes yes yes yes AM Acceleration Magnitude yes CX X Co-ordinate yes yes yes Y Co-ordinate CY yes yes CZ Z Co-ordinate yes yes RX X Rotation RY Y Rotation yes yes yes yes RZ Z Rotation yes yes Rotation Magnitude RM Page A.3

256 T/HIS User manual Version 15.0, May 2018 yes RVX X Rotational Velocity yes yes Y Rotational Velocity RVY yes yes RVZ yes Z Rotational Velocity yes Rotational Velocity Magnitude RVM yes yes yes X Rotational Acceleration RAX RAY yes yes Y Rotational Acceleration RAZ Z Rotational Acceleration yes yes RAM Rotational Acceleration Magnitude yes yes FLX yes X Thermal Flux yes yes Y Thermal Flux FLY yes yes FLZ Z Thermal Flux yes yes FLM Thermal Flux Magnitude yes Frequency Domain Analysis For a steady state dynamic analysis (SSD) the following nodal data components are available. For each data component both amplitude and phase angle data components are available. LSDA (binout) ASCII Component THF XTF (xtfile) (d3thdt) X Displacement DX yes DY Y Displacement yes DZ Z Displacement yes VX X Velocity yes VY yes Y Velocity yes Z Velocity VZ X Acceleration yes AX yes AY Y Acceleration yes Z Acceleration AZ For a random vibration analysis (PSD) the following nodal data components are available. ASCII THF XTF (xtfile) Component LSDA (binout) (d3thdt) yes yes yes X Displacement DX Y Displacement yes yes yes DY yes yes Z Displacement DZ yes yes yes DM Displacement Magnitude yes yes yes X Velocity VX yes yes yes yes VY Y Velocity yes Z Velocity VZ yes yes yes yes yes Velocity Magnitude VM X Acceleration yes yes yes AX yes yes yes AY Y Acceleration yes yes yes AZ Z Acceleration yes yes yes AM Acceleration Magnitude Only nodes that have been declared in "nodal time-history blocks" will be available for processing. To get a list of M (enu) command. available node numbers in command line mode use the Page A.4

257 User manual Version 15.0, May 2018 T/HIS Coordinate system of results All nodal results are in the global cartesian coordinate system at nodes which have been defined as except accelerometers: these report accelerations in the local coordinate system of the accelerometer subject to any rotations its "parent" rigid body has undergone. A.5 Solid Data Components For solids the following data components are available. THF (d3thdt) ASCII XTF (xtfile) LSDA (binout) Component Stress components yes Stress in XX SXX yes Stress in YY yes SYY yes yes yes Stress in ZZ SZZ SXY Stress in XY yes yes yes SYZ Stress in YZ yes yes Stress in ZX SZX yes yes yes Maximum Principal Stress SMX Minimum Principal Stress yes SMN yes SMS Maximum Shear Stress yes yes SVM Von Mises Stress yes yes yes yes Average Stress (Pressure) SAV STR Stress Triaxiality Factor yes yes Strain components yes yes EFF Effective Plastic Strain yes Strain in XX EXX yes yes yes Strain in YY EYY Strain in ZZ yes yes EZZ EXY Strain in XY yes yes yes EYZ Strain in YZ yes yes Strain in ZX EZX yes yes EMX yes Maximum Principal Strain EMN yes yes Minimum Principal Strain yes yes EMS Maximum Shear Strain yes Von Mises Strain EVM yes yes EAV yes Average Strain "Extra" components SOEn yes yes Extra Data Component Frequency Domain Analysis For a steady state dynamic analysis (SSD) the following nodal data components are available. For each data component both amplitude and phase angle data components are available. THF XTF (xtfile) LSDA (binout) ASCII Component (d3thdt) Stress components Page A.5

258 T/HIS User manual Version 15.0, May 2018 SXX Stress in XX yes Stress in YY SYY yes Stress in ZZ SZZ yes SXY Stress in XY yes Stress in YZ SYZ yes SZX Stress in ZX yes Strain components Strain in XX EXX yes Strain in YY yes EYY EZZ Strain in ZZ yes EXY Strain in XY yes EYZ yes Strain in YZ EZX yes Strain in ZX For a random vibration analysis (PSD) the following nodal data components are available. THF LSDA (binout) ASCII Component XTF (xtfile) (d3thdt) Stress components Stress in XX yes SXX yes SYY Stress in YY yes Stress in ZZ SZZ SXY yes Stress in XY SYZ Stress in YZ yes yes Stress in ZX SZX SVM yes Von Mises Stress Strain components yes EXX Strain in XX EYY Strain in YY yes EZZ Strain in ZZ yes yes EXY Strain in XY yes Strain in YZ EYZ Strain in ZX EZX yes Coordinate systems of results The stress and strain tensors are reported in the global cartesian system unless the option to output results in the part coordinate system has been used. Writing the directional strain tensor is optional in LS-DYNA: it will only appear in the menu if it is present. "Extra" data components ) are also optional and only appear if present in the database. They are material The "extra" data components ( SOEn dependent results, and are treated as scalar data of unknown type by T/HIS. A.6 Beam Data Components For beams the following data components are available. Page A.6

259 User manual Version 15.0, May 2018 T/HIS LSDA (binout) ASCII Component THF (d3thdt) XTF (xtfile) Basic data components yes NX yes Axial force yes yes Shear force in Y NY yes Shear force in Z yes NZ yes Moment in Y MY yes MZ Moment in Z yes yes yes yes Torsional moment MX "Plastic" data components EAX Axial strain yes PE1 Plastic bending energy : end 1 yes PE2 Plastic bending energy : end 2 yes RY1 yes Y rotation : end 1 yes RY2 Y rotation : end 2 RZ1 yes Z rotation : end 1 RZ2 Z rotation : end 2 yes RX Torsional rotation yes yes MY1 Y bending moment : end 1 MY2 Y bending moment : end 2 yes MZ1 Z bending moment : end 1 yes yes MZ2 Z bending moment : end 2 yes Axial collapse energy ACE IE yes Internal energy Integration Point Data Axial stress yes SXX yes SXY XY shear stress yes yes yes SZX ZX shear stress yes EFF Effective plastic strain yes yes EXX Axial strain yes Discrete Beams - Only available if DISBOUT ASCII file has bene written to LSDA (binout) file. yes Axial displacement AXD yes YD Displacement in Y yes Displacement in Z ZD Axial rotation yes AXR YR yes Rotation in Y ZR Rotation in Z yes Frequency Domain Analysis For a steady state dynamic analysis (SSD) the following nodal data components are available. For each data component both amplitude and phase angle data components are available. Component XTF (xtfile) LSDA (binout) ASCII THF (d3thdt) Basic data components NX Axial force yes Page A.7

260 T/HIS User manual Version 15.0, May 2018 NY Shear force in Y yes Shear force in Z NZ yes Moment in Y MY yes MZ Moment in Z yes Torsional moment MX yes Integration point data Axial stress yes SXX XY shear stress SXY yes ZX shear stress yes SZX EFF Effective plastic strain yes EXX Axial strain yes For a random vibration analysis (PSD) the following nodal data components are available. XTF (xtfile) ASCII Component THF LSDA (binout) (d3thdt) Basic data components NX Axial force yes yes NY Shear force in Y NZ Shear force in Z yes yes MY Moment in Y yes Moment in Z MZ Torsional moment yes MX Integration point data Axial stress yes SXX SXY XY shear stress yes SZX ZX shear stress yes yes Effective plastic strain EFF EXX Axial strain yes Additional Beam Results: written if requested from LS-DYNA file for both In addition to the basic data components additional beam results may be output to the .THF file it .THF Belytschko-Schwer and Hughes-Lui beam elements. As no indication of the element type is written to the is impossible for T/HIS to work out whether a specific element is a Belytschko-Schwer or a Hughes-Liu beam. As the element type is unknown the user must know which element type a beam is in order to extract the correct results. Belytschko-Schwer Beams If you have used Belytschko-Schwer beams with a resultant plastic material model the following "plastic" results will also be written out to .THF *DATABASE_EXTENT_BINARY card file: (Note that these data are written even if the > is not set - the presence of a resultant beam material triggers their output automatically. This is not the field < beamip case for Hughes-Liu data components, for which output must be requested explicitly, see below.) Coordinate systems of results Beam results are always output in the element local coordinate system. Only beams declared in "beam element time-history blocks" will be available. "Extra" data components Page A.8

261 User manual Version 15.0, May 2018 T/HIS Where "extra" results are written, and T/HIS cannot resolve unambiguously whether they are Belytschko-Schwer plastic data, or Hughes-Liu stress/strain data, . it is your responsibility to interpret the results correctly A.7 Shell Data Components For shells the following data components are available. These combine with directions for the data component, and in some cases a location through the shell thickness. XTF (xtfile) Component LSDA (binout) THF (d3thdt) ASCII Stress components yes yes Stress in XX SXX SYY yes yes Stress in YY Stress in ZZ SZZ yes yes yes yes Stress in XY SXY SYZ Stress in YZ yes yes SZX Stress in ZX yes yes yes SMX Maximum Principal Stress yes yes Minimum Principal Stress SMN yes Maximum Shear Stress yes SMS yes SVM Von Mises Stress yes yes SAV Average Stress (Pressure) yes yes yes yes Stress Triaxiality Factor STR Strain components EFF Effective Plastic Strain yes yes yes yes EXX Strain in XX yes Strain in YY EYY yes yes yes Strain in ZZ EZZ Strain in XY yes yes EXY EYZ Strain in YZ yes yes yes EZX Strain in ZX yes yes Maximum Principal Strain EMX yes yes EMN yes Minimum Principal Strain EMS yes yes Maximum Shear Strain yes yes EVM Von Mises Strain yes Average Strain EAV yes Force / Moment components yes MX Moment in X Moment in Y yes MY Moment in XY MXY yes yes Shear force in X QX yes QY Shear force in Y yes NX Normal force in X Normal force in Y yes NY yes NXY Normal force in XY Miscellaneous components Page A.9

262 T/HIS User manual Version 15.0, May 2018 T Thickness yes Internal energy density I yes "Extra" components yes Extra Data Component An yes Frequency Domain Analysis For a steady state dynamic analysis (SSD) the following nodal data components are available. For each data component both amplitude and phase angle data components are available. LSDA (binout) Component THF ASCII XTF (xtfile) (d3thdt) Stress components yes Stress in XX SXX SYY Stress in YY yes SZZ Stress in ZZ yes SXY Stress in XY yes SYZ yes Stress in YZ yes SZX Stress in ZX Strain components Strain in XX yes EXX EYY Strain in YY yes yes EZZ Strain in ZZ EXY Strain in XY yes yes EYZ Strain in YZ yes Strain in ZX EZX For a random vibration analysis (PSD) the following nodal data components are available. ASCII THF XTF (xtfile) LSDA (binout) Component (d3thdt) Stress components yes SXX Stress in XX SYY Stress in YY yes yes Stress in ZZ SZZ SXY Stress in XY yes SYZ Stress in YZ yes yes SZX Stress in ZX yes Von Mises Stress SVM Strain components yes EXX Strain in XX EYY Strain in YY yes EZZ Strain in ZZ yes yes EXY Strain in XY yes Strain in YZ EYZ EZX Strain in ZX yes Page A.10

263 User manual Version 15.0, May 2018 T/HIS A.7.1 THF (d3thdt) File Stress Stress tensors are in the global cartesian system unless the option to use material axes has been invoked for orthotropic materials (CMPFLG on *DATABASE_EXTENT_BINARY). By default results are available at top and bottom integration points and mid-surface but values can be output for all through thickness integration points by using MAXINT on *DATABASE_EXTENT_BINARY Strain The Strain tensors output is optional. Values are in the global cartesian system unless the option to use material axes has been invoked for orthotropic materials (CMPFLG on *DATABASE_EXTENT_BINARY). Only values at the top and bottom integration points are output. T/HIS will average these values for the mid surface. Forces & Force and moment resultants are per unit width, and are written in the element local axis system. Refer to "Theory of Plates and Shells", Timoshenko, for a precise definition of these values. Moments Extra The "Extra History" data components will only appear in the menu if they have been selected for output (NEIPS on *DATABASE_EXTENT_BINARY). These are output for the same surfaces / integration points as the stress tensor values. (surfaces/layers) Through Thickness Integration Points not NOTE The top and bottom "surfaces" are the outer fibres if the default Gaussian integration rules are used, but rather the outer and inner integration points. The relationship between integration point location and shell : thickness depends on the number of integration points used. The following diagram shows locations of integration points with respect to shell half-thickness (t/2 ) assuming the default Gaussian integration rules have been used: No of PointsDistance of outer fibres from neutral axis as a proportion of t/2 1 0.0 (membrane) 2 0.577 t/2 0.775 3 4 0.861 t/2 5 0.906 The "top" (or outer) point is on the positive local Z side of the element neutral axis. The output of shell data from LS-DYNA will fall into one of two categories, and the "surface" options available in T/HIS depend on this. It is possible to use non-default integration schemes in LS-DYNA which may locate the integration points NOTE : at different places. This is an advanced topic: contact Oasys Ltd for advice. Default output case: 3 "surfaces" In this case, regardless of how many integration points the shell elements may actually have through their thickness, LS-DYNA writes out: Top surface : Top integration point Centre surface : Computed neutral axis value Bottom surface : Bottom integration point Note that the "centre" surface here is the neutral axis value. For membrane elements all three sets of values will be the same. Optional output case: user-defined number of integration points (maxint other than 0 or 3) The number of through thickness integration points written to the THF file can be modified using the value of MAXINT on the *DATABASE_EXTENT_BINARY card. If this parameter is changed then all thin and thick shell output written to the THF file will have MAXINT data “slots” for integration points in the file, regardless of how many integration points a given element may have through its thickness. Page A.11

264 T/HIS User manual Version 15.0, May 2018 If MAXINT is not 3 then the order in which data is written to the THF file is controlled by the actual number of integration points of integration points in a shell’s formulation. The following table illustrates output for the case of MAXINT not equal to 3 Shell with 5 Integration Data slot in Shell with any other nunber of integration Shell with 3 Integration points file points points #1 Middle Bottom Middle Bottom Bottom #2 | Top Bottom + 1 #3 | #4 zero Top - 1 Top zero #5 Top zero #6 zero NOTE The THF file does NOT contain any information on the number of integration points each shell was defined with. : No explicit neutral axis value is calculated or output. The outcome of writing more integration points than have been used in a shell formulation is undefined. There is no guarantee that the "centre" surface in this context is the neutral axis value: this will depend upon the element integration scheme. In addition where the "centre" value has been averaged from a pair of points, when the number of layers is an even number, it will definitely not be the neutral axis value: consider plastic strain in a section in pure bending! The ZTF file generated by PRIMER can help to resolve some of these problems. THF File + ZTF File If a ZTF file had been generated using PRIMER then T/HIS can use additional information from the ZTF to correctly work out the number of integration points each shell element was defined with. If an attempt is made to output data for a surface that does not exist in the THF file then T/HIS will generate a warning message and a NULL curve will be generated. In addition to working out the correct number of through thickness integration points for each element T/HIS can also use the information in the ZTF to identify models where MAXINT has been set to a -ve number in order to generate data for multiple in-plane integration points. Effect of plotting "Top" surface on models with MAXINT = 6 and MAXINT = 9 whit and without a ZTF file. MAXINT = 9, no MAXINT = 9, ZTF MAXINT = 6, ZTF file MAXINT = 6, no ZTF file present ZTF file file present Shell 1 has 4 Correct (int point #4) Undefined (#int Correct (int point #4) Undefined (#int points points < 9) < 6) integration points Correct (int point #6) Correct (int point #6) Shell 2 has 6 Undefined (#int Correct (int point #6) points < 9) integration points Shell 3 has 9 Warning message as Correct (int point #9) Correct (int point Incorrect (6th #int points < 6 integration points integration point) #9) In-plane Integration Points In some versions of LS-DYNA it is now possible to write out data for all 4 in-plane integration points for fully integrated shells by setting MAXINT on the *DATABASE_EXTENT_BINARY card to a -ve number. For example specifying a value of -8 will generate data for 8 layers each with 4 in-plane integration points. If this option is used then all the elements will be written out using this option regardless of whether they are fully integrated or not. As there is no information in the THF to indicate that data for 4 in-plane integration points has been written to the file then the file format will be exactly the same as for an analysis with a +ve value of MAXINT 4 times larger. For example MAXINT = -8 and MAXINT = 32 will both produce THF files with 32 integration points worth of data and Page A.12

265 User manual Version 15.0, May 2018 T/HIS there is no way for T/HIS to know which value of MAXINT was used to generate the data. The ZTF file generated by PRIMER can help to resolve this problem. If multiple in-plane integration points are written to the THF file then they are written in the following order. Layer 1 - in-plane int point #1 Layer 2 - in-plane int point #1 ... Layer n - in-plane int point #1 Layer 1 - in-plane int point #2 Layer 2 - in-plane int point #2 ... Layer n - in-plane int point #2 Layer 1 - in-plane int point #3 ... If non fully integrated shells are included in the list of elements written to the THF file then in some versions NOTE of LS-DYNA the 2nd, 3rrd and 4th in-plane values will all be zero. Care should therefore be taken if the 4 : in-plane values are averaged. In some versions of LS-DYNA the 1st in-plane integration point is correctly written out using the global axis system while the 2nd, 3rd and 4th in-plane values are written using the elements local coordinate system. Care should therefore be taken if the 4 in-plane values are averaged. A.7.2 LSDA (binout) File Stress By default stress tensors are in the local element coordinate system. Values are written out for all the through thickness and in-plane integration points. Strain The Strain tensors output is optional. By defaul the values are in the local element coordinate systems and only values at the top and bottom integration points are output. T/HIS will average these values for the mid surface. Forces & These are not written to the LSDA file. Moments Extra By default "Extra" data components are not written to the LSDA file. Some recent versions of LS-DYNA can now write the"Extra" data components to the LSDA file if the parameters OPTION1, OPTION2, OPTION3 and OPTION4 are set on the *DATABASE_ELOUT card. Global v Local coordinate system results The LSDA file can contain both ELOUT and ELOUTDET data components. By default T/HIS uses the data from ELOUTDET as ELOUT only contains a subset of the data in ELOUDET. In some versions of LS-DYNA it is possible to change the Shell and ThickShell data components written to the ELOUT so that they are defined using the Global coordinate system (see EOCS on *CONTROL_OUTPUT) instead of the default local element coordinate system If this option is used then only the ELOUT file is modified, the ELOUDET file is still written using the local element coordinate system. If T/HIS detects that the LSDA file contains both ELOUT and ELOUDET and that they are using different coordinate systems then T/HIS will display an additional option can be used to force T/HIS to use the ELOUT file data instead of the ELOUTDET data. Through Thickness Integration Points (surfaces/layers) Unlike the THF file the LSDA file can contain different numbers of integration points for each element. This means that if "Top" surface is selected T/HIS can correctly identify which integration point it needs to read data from. By default strain tensors are only written out for the top and bottom surfaces and T/HIS averages these for the mid surface values. In recent versions of LS-DYNA the parameter INTOUT on the *DATABASE_EXTENT_BINARY Page A.13

266 T/HIS User manual Version 15.0, May 2018 card can change this so that strain tensor values are written out for all the through thickness integration points. T/HIS not currently support these additional values. does In-plane Integration Points By default the LSDA file will contain data for all 4 in-plane integration points for any fully integrated shells. As with the THF file by default there is no information in the LSDA file to tell the difference between a shell with 32 through thickness integration points and a shell with 8 through thickness layers and 4 in-plane points per layer. If a ZTF file written by PRIMER is present then T/HIS can use the extra information on the ZTF to work out which elements have multiple in-plane points. If the parameter INTOUT on the *DATABASE_EXTENT_BINARY card is set then the format of the LSDA file is changed and the LSDA file then contains enough information for T/HIS to identify the shells with multiple in-plane integration points without the ZTF file. In addition to changing the format of the LSDA file setting INTOUT on the *DATABASE_EXTENT_BINARY card also outputs strain tensor values at each in-plane integration point as well as all the through thickness layers. T/HIS does not currently support strain values from multiple in-plane integration points. Extrapolated Stress / Strain Values The parameter NODOUT on the *DATABASE_EXTENT_BINARY card "gaa" can be used to generate stress and strain values that have been extrapolated to the nodal positions instead of values at the elements integration points. T/HIS does not currently support these extrapolated values. Page A.14

267 User manual Version 15.0, May 2018 T/HIS A.8 Thick Shell Data Components For thick shells the following data components are available. XTF (xtfile) THF (d3thdt) LSDA (binout) Component ASCII Stress components yes SXX Stress in XX yes Stress in YY SYY yes yes Stress in ZZ yes SZZ yes Stress in XY yes SXY yes yes yes Stress in YZ SYZ SZX Stress in ZX yes yes yes SMX Maximum Principal Stress yes yes SMN Minimum Principal Stress yes yes yes Maximum Shear Stress SMS Von Mises Stress yes SVM yes SAV Average Stress (Pressure) yes yes STR Stress Triaxiality Factor yes yes Strain components Effective Plastic Strain yes yes EFF EXX Strain in XX yes yes yes yes EYY Strain in YY yes Strain in ZZ EZZ yes yes yes Strain in XY EXY Strain in YZ yes yes EYZ EZX Strain in ZX yes yes yes EMX Maximum Principal Strain yes yes Minimum Principal Strain EMN yes yes EMS yes Maximum Shear Strain EVM yes yes Von Mises Strain yes yes EAV Average Strain "Extra" components Extra Data Component An yes yes Frequency Domain Analysis For a steady state dynamic analysis (SSD) the following nodal data components are available. For each data component both amplitude and phase angle data components are available. Component THF XTF (xtfile) LSDA (binout) ASCII (d3thdt) Stress components yes SXX Stress in XX yes Stress in YY SYY SZZ Stress in ZZ yes SXY Stress in XY yes Page A.15

268 T/HIS User manual Version 15.0, May 2018 SYZ Stress in YZ yes Stress in ZX SZX yes Strain components Strain in XX EXX yes Strain in YY yes EYY EZZ Strain in ZZ yes Strain in XY yes EXY yes EYZ Strain in YZ Strain in ZX yes EZX For a random vibration analysis (PSD) the following nodal data components are available. XTF (xtfile) THF ASCII Component LSDA (binout) (d3thdt) Stress components SXX yes Stress in XX yes SYY Stress in YY SZZ yes Stress in ZZ SXY Stress in XY yes yes SYZ Stress in YZ SZX Stress in ZX yes yes SVM Von Mises Stress Strain components Strain in XX EXX yes EYY Strain in YY yes EZZ yes Strain in ZZ EXY Strain in XY yes EYZ Strain in YZ yes yes EZX Strain in ZX A.8.1 THF (d3thdt) File Stress Stress tensors are in the global cartesian system unless the option to use material axes has been invoked for orthotropic materials (CMPFLG on *DATABASE_EXTENT_BINARY). By default results are available at top and bottom integration points and mid-surface but values can be output for all through thickness integration points by using MAXINT on *DATABASE_EXTENT_BINARY Strain The Strain tensors output is optional. Values are in the global cartesian system unless the option to use material axes has been invoked for orthotropic materials (CMPFLG on *DATABASE_EXTENT_BINARY). Only values at the top and bottom integration points are output. T/HIS will average these values for the mid surface. The "Extra Historyl" data components will only appear in the menu if they have been selected for output Extra (NEIPS on *DATABASE_EXTENT_BINARY). These are output for the same surfaces / integration points as the stress tensor values. Through Thickness Integration Points (surfaces/layers) The top and bottom "surfaces" are NOTE the outer fibres if the default Gaussian integration rules are used, but not rather the outer and inner integration points. The relationship between integration point location and shell : thickness depends on the number of integration points used. The following diagram shows locations of integration points with respect to shell half-thickness (t/2 ) assuming the Page A.16

269 User manual Version 15.0, May 2018 T/HIS default Gaussian integration rules have been used: No of PointsDistance of outer fibres from neutral axis as a proportion of t/2 1 0.0 (membrane) 2 0.577 t/2 3 0.775 4 0.861 t/2 5 0.906 The "top" (or outer) point is on the positive local Z side of the element neutral axis. The output of shell data from LS-DYNA will fall into one of two categories, and the "surface" options available in T/HIS depend on this. NOTE It is possible to use non-default integration schemes in LS-DYNA which may locate the integration points at different places. This is an advanced topic: contact Oasys Ltd for advice. : Default output case: 3 "surfaces" In this case, regardless of how many integration points the shell elements may actually have through their thickness, LS-DYNA writes out: Top integration point Top surface : Computed neutral axis value Centre surface : Bottom surface : Bottom integration point Note that the "centre" surface here is the neutral axis value. For membrane elements all three sets of values will be the same. Optional output case: user-defined number of integration points (maxint other than 0 or 3) The number of through thickness integration points written to the THF file can be modified using the value of MAXINT on the *DATABASE_EXTENT_BINARY card. If this parameter is changed then all thin and thick shell output written to the THF file will have MAXINT data “slots” for integration points in the file, regardless of how many integration points a given element may have through its thickness. If MAXINT is not 3 then the order in which data is written to the THF file is controlled by the actual number of integration points of integration points in a shell’s formulation. The following table illustrates output for the case of MAXINT not equal to 3 Thick Shell with any other nunber of integration points Thick Shell with 3 Integration points Data slot in file Bottom Middle #1 #2 Bottom | Top #3 | zero #4 Top #5 zero #6 zero The THF file does NOT contain any information on the number of integration points each shell was defined NOTE with. : No explicit neutral axis value is calculated or output. The outcome of writing more integration points than have been used in a shell formulation is undefined. There is no guarantee that the "centre" surface in this context is the neutral axis value: this will depend upon the element integration scheme. In addition where the "centre" value has been averaged from a pair of points, when the number of layers is an even number, it will definitely not be the neutral axis value: consider plastic strain in a section in pure bending! The ZTF file generated by PRIMER can help to resolve some of these problems. Page A.17

270 T/HIS User manual Version 15.0, May 2018 THF File + ZTF File If a ZTF file had been generated using PRIMER then T/HIS can use additional information from the ZTF to correctly work out the number of integration points each shell element was defined with. If an attempt is made to output data for a surface that does not exist in the THF file then T/HIS will generate a warning message and a NULL curve will be generated. In addition to working out the correct number of through thickness integration points for each element T/HIS can also use the information in the ZTF to identify models where MAXINT has been set to a -ve number in order to generate data for multiple in-plane integration points. Effect of plotting "Top" surface on models with MAXINT = 6 and MAXINT = 9 whit and without a ZTF file. MAXINT = 6, no MAXINT = 9, no MAXINT = 9, ZTF MAXINT = 6, ZTF file ZTF file present ZTF file file present Undefined (#int Correct (int point #4) Undefined (#int Correct (int point #4) Thick Shell 1 has 4 points < 9) integration points points < 6) Correct (int point #6) Correct (int point #6) Undefined (#int Correct (int point #6) Thick Shell 2 has 6 points < 9) integration points Incorrect (6th Thick Shell 3 has 9 Warning message as Correct (int point #9) Correct (int point #9) integration point) integration points #int points < 6 In-plane Integration Points In some versions of LS-DYNA it is now possible to write out data for all 4 in-plane integration points for fully integrated shells by setting MAXINT on the *DATABASE_EXTENT_BINARY card to a -ve number. For example specifying a value of -8 will generate data for 8 layers each with 4 in-plane integration points. If this option is used then all the elements will be written out using this option regardless of whether they are fully integrated or not. As there is no information in the THF to indicate that data for 4 in-plane integration points has been written to the file then the file format will be exactly the same as for an analysis with a +ve value of MAXINT 4 times larger. For example MAXINT = -8 and MAXINT = 32 will both produce THF files with 32 integration points worth of data and there is no way for T/HIS to know which value of MAXINT was used to generate the data. The ZTF file generated by PRIMER can help to resolve this problem. If multiple in-plane integration points are written to the THF file then they are written in the following order. Layer 1 - in-plane int point #1 Layer 2 - in-plane int point #1 ... Layer n - in-plane int point #1 Layer 1 - in-plane int point #2 Layer 2 - in-plane int point #2 ... Layer n - in-plane int point #2 Layer 1 - in-plane int point #3 ... If non fully integrated shells are included in the list of elements written to the THF file then in some versions NOTE : of LS-DYNA the 2nd, 3rrd and 4th in-plane values will all be zero. Care should therefore be taken if the 4 in-plane values are averaged. In some versions of LS-DYNA the 1st in-plane integration point is correctly written out using the global axis system while the 2nd, 3rd and 4th in-plane values are written using the elements local coordinate system. Care should therefore be taken if the 4 in-plane values are averaged. A.8.2 LSDA (binout) File By default stress tensors are in the local element coordinate system. Values are written out for all the through Stress thickness and in-plane integration points. Page A.18

271 User manual Version 15.0, May 2018 T/HIS Strain The Strain tensors output is optional. By default values are in the local element coordinate systems and only values at the top and bottom integration points are output. T/HIS will average these values for the mid surface. By default "Extra" data components are not written to the LSDA file. Extra Some recent versions of LS-DYNA can now write the"Extra" data components to the LSDA file if the parameters OPTION1, OPTION2, OPTION3 and OPTION4 are set on the *DATABASE_ELOUT card. Global v Local coordinate system results The LSDA file can contain both ELOUT and ELOUTDET data components. By default T/HIS uses the data from ELOUTDET as ELOUT only contains a subset of the data in ELOUDET. In some versions of LS-DYNA it is possible to change the Shell and ThickShell data components written to the ELOUT so that they are defined using the Global coordinate system (see EOCS on *CONTROL_OUTPUT) instead of the default local element coordinate system If this option is used then only the ELOUT file is modified, the ELOUDET file is still written using the local element coordinate system. If T/HIS detects that the LSDA file contains both ELOUT and ELOUDET and that they are using different coordinate systems then T/HIS will display an additional option can be used to force T/HIS to use the ELOUT file data instead of the ELOUTDET data. Through Thickness Integration Points (surfaces/layers) Unlike the THF file the LSDA file can contain different numbers of integration points for each element. This means that if "Top" surface is selected T/HIS can correctly identify which integration point it needs to read data from. By default strain tensors are only written out for the top and bottom surfaces and T/HIS averages these for the mid surface values. In recent versions of LS-DYNA the parameter INTOUT on the *DATABASE_EXTENT_BINARY card can change this so that strain tensor values are written out for all the through thickness integration points. T/HIS does not currently support these additional values. In-plane Integration Points By default the LSDA file will contain data for all 4 in-plane integration points for any fully integrated shells. As with the THF file by default there is no information in the LSDA file to tell the difference between a shell with 32 through thickness integration points and a shell with 8 through thickness layers and 4 in-plane points per layer. If a ZTF file written by PRIMER is present then T/HIS can use the extra information on the ZTF to work out which elements have multiple in-plane points. If the parameter INTOUT on the *DATABASE_EXTENT_BINARY card is set then the format of the LSDA file is changed and the LSDA file then contains enough information for T/HIS to identify the shells with multiple in-plane integration points without the ZTF file. In addition to changing the format of the LSDA file setting INTOUT on the *DATABASE_EXTENT_BINARY card also outputs strain tensor values at each in-plane integration point as well as all the through thickness layers. T/HIS does not currently support strain values from multiple in-plane integration points. Extrapolated Stress / Strain Values The parameter NODOUT on the *DATABASE_EXTENT_BINARY card can be used to generate stress and strain values that have been extrapolated to the nodal positions instead of values at the elements integration points. T/HIS does not currently support these extrapolated values. A.9 Rigid Wall Data Components For rigid walls the following data components are available. Page A.19

272 T/HIS User manual Version 15.0, May 2018 LSDA (binout) ASCII Component THF (d3thdt) XTF (xtfile) yes yes Normal force FN yes FX Global X force yes yes FY yes yes Global Y force FZ Global Z force yes yes A.10 Discrete Element (Spring/Damper) Data Components For springs and dampers the following data components are available. XTF (xtfile) LSDA (binout) ASCII THF (d3thdt) Component yes yes FT Force yes yes yes ET Elongation yes Force versus Elongation FE yes Energy EN yes yes yes Moment MT yes RT yes Rotation yes yes yes Moment versus Rotation MR FX Global X force yes yes yes yes FY Global Y force yes Global Z force FZ yes yes yes Moment in X MX Moment in Y yes MY yes MZ Moment in Z yes yes A.11 Seat Belt Data Components For seat belts the following data components are available. LSDA (binout) ASCII THF (d3thdt) Component XTF (xtfile) yes yes yes Force FT ST Strain yes yes FS Force versus Strain yes Current Length CL yes A.12 Retractor Data Components For retractors the following data components are available. THF (d3thdt) LSDA (binout) ASCII Component XTF (xtfile) yes yes yes FT Force yes yes yes PT Pullout yes FP Force versus Pullout A.13 Slipring Data Components For sliprings the following data components are available. Page A.20

273 User manual Version 15.0, May 2018 T/HIS LSDA (binout) ASCII Component THF (d3thdt) XTF (xtfile) yes yes Pull through PT yes A.14 Contact Data Components For contacts the following data components are available. XTF (xtfile) THF (d3thdt) LSDA (binout) Component ASCII yes yes Master X force FX yes yes FY Master Y force yes yes yes yes yes Master Z force FZ FM Master Force Magnitude yes yes yes yes yes FXS Slave X force yes yes yes FYS Slave Y force yes yes Slave Z force FZS yes yes yes FMS yes yes Slave Force Magnitude TEN yes yes yes Total energy (Slave + Master) MX Master X moment yes yes yes MY Master Y moment yes yes yes Master Z moment MZ Slave X moment yes yes MXS yes yes MYS Slave Y moment yes Slave Z moment MZS yes yes yes Master Mass MM Slave Mass yes MS yes SEN yes yes yes Slave side energy yes Master side energy MEN yes yes yes yes Frictional energy FRI yes A.15 Nodal Reaction Force Data Components For nodal reactions the following data components are available. LSDA (binout) ASCII Component THF (d3thdt) XTF (xtfile) yes yes yes FX X Force yes yes yes FY Y Force yes Z Force FZ yes yes yes yes yes Force Magnitude FM Energy yes yes EN yes yes LFX Local X force yes yes LFY Local Y force LFZ Local Z force yes yes A.16 Airbag Data Components For airbags the following data components are available. Versions of LS-DYNA 971 can also generate PART based data for AIRBAGS that use the PARTICLE airbag methods. Page A.21

274 T/HIS User manual Version 15.0, May 2018 If *DATABASE_CPM_SENSOR has been used to define sensors then the output for the sensors will also be available under the AIRBAG data components. XTF (xtfile) THF (d3thdt) LSDA (binout) Component ASCII Airbag components yes PR yes Pressure yes VO yes yes Volume yes yes IE Internal energy yes yes yes yes yes IN Mass flow rate in OU Mass flow rate out yes yes yes yes yes TM Total mass yes yes DE Density yes yes yes Surface area SA Gas temperature yes TE yes RF Reaction force yes yes yes TK Translational Kinetic Energy Inflator Energy IF yes yes DMP Damping Energy PP yes Average Particle Pressure Part components Pressure yes PR yes MAF Flow rate through fabric yes Flow rate through vent MAV TA yes Total area Unblocked area UN yes yes Gas temperature TE Pressure s+ PPR yes NPR Pressure s- yes HC Heat Convection Energy yes EV Enhanced Vent yes LE yes Leak Energy yes Por Volume PVO Airbag Chamber components PR Pressure yes yes VO Volume yes Internal energy IE Mass flow rate in yes IN OU yes Mass flow rate out TM Total mass yes yes Density DE yes SA Surface area yes TE Gas temperature Reaction force yes RF yes TR Translational Energy yes Number of Particle NP Page A.22

275 User manual Version 15.0, May 2018 T/HIS PP Average Particle Pressure yes CPM Sensor Components (*DATABASE_CPM_SENSOR) XTF (xtfile) Component LSDA (binout) THF (d3thdt) ASCII yes X Co-ordinate of Sensor X yes Y yes yes Y Co-ordinate of Sensor yes Z Co-ordinate of Sensor Z yes VX X Velocity yes yes yes VY Y Velocity yes VZ yes Z Velocity yes yes Velocity Magnitude VM yes yes PR Pressure yes yes yes DE Density yes yes Temperature TE N Particles yes yes NP A.17 Joint Data Components For joints the following data components are available. Component THF (d3thdt) XTF (xtfile) LSDA (binout) ASCII Basic Joints FX Global X force yes yes yes FY Global Y force yes yes yes Global Z force FZ Force Magnitude yes yes FM yes yes MX Moment in X yes Moment in Y MY yes yes yes Moment in Z MZ Moment Magnitude yes MM yes General Stiffness Joints Phi angle PHA yes yes yes yes DPH d(Phi)/dt yes Phi stiffness moment PHS yes yes PHD Phi damping moment yes yes yes Phi total moment PHT Theta angle yes yes THA yes yes DTH d(Theta)/dt yes Theta stiffness moment THS yes yes THD Theta damping moment yes yes Theta total moment THT yes yes yes PSA Psi angle yes yes DPS d(Psi)/dt yes yes Psi stiffness moment PSS PSD Psi damping moment yes yes yes yes PST Psi total moment Page A.23

276 T/HIS User manual Version 15.0, May 2018 yes EN Total joint energy yes Flexion Torsion Joints yes AA yes Alpha angle yes yes d(Alpha)/dt DA yes Alpha stiffness moment yes ALS yes Alpha damping moment ALD yes ALT Alpha total moment yes yes yes yes Beta angle BA DB d(Beta)/dt yes yes BES Beta stiffness moment yes yes yes BED Beta damping moment yes yes yes BET Beta total moment Gamma angle yes yes GA yes DG d(Gamma)/dt yes yes yes GSF Gamma scale factor EN Total joint energy yes yes Translational Joints yes yes XD X displacement yes d(X)/dt DXD yes yes yes Y displacement YD d(Y)/dt yes yes DYD ZD Z displacement yes yes yes DZD d(Z)/dt yes yes X stiffness XSF yes yes XDF yes X damping XTF yes yes X total yes yes YSF Y stiffness yes Y damping YDF yes yes YTF yes Y total ZSF yes yes Z stiffness yes yes ZDF Z damping yes yes Z total ZTF EN Total joint energy yes yes Page A.24

277 User manual Version 15.0, May 2018 T/HIS A.18 Cross Section Data Components For cross sections the following data components are available. XTF (xtfile) THF (d3thdt) LSDA (binout) Component ASCII yes X Force FX yes FY yes yes Y Force yes Z Force FZ yes RM Force Magnitude yes yes yes MX Moment in X yes MY yes Moment in Y yes yes Moment in Z MZ yes yes MM yes Moment Magnitude yes CX X centroid coordinate yes yes Y centroid coordinate CY yes Z centroid coordinate yes yes CZ AR Area of Cross Section yes yes A.19 Subsystem Data Components For subsystems the following data components are available. XTF (xtfile) LSDA (binout) ASCII THF (d3thdt) Component KE Kinetic energy yes yes yes yes IE Internal energy yes Hourglass energy HG yes yes yes Kinetic energy ratio KR Internal energy ratio yes IM yes XM X momentum yes yes yes YM Y momentum yes yes ZM Z momentum yes A.20 Geometric Contact Data Components For geometric contact entities the following data components are available. THF (d3thdt) LSDA (binout) ASCII Component XTF (xtfile) yes yes FX X Force yes Y Force FY yes yes FZ Z Force yes yes Force Magnitude RM yes yes yes MX Moment in X yes yes MY Moment in Y yes yes Moment in Z MZ MM Moment Magnitude yes yes Page A.25

278 T/HIS User manual Version 15.0, May 2018 A.21 Nodal Rigid Body Data Components For nodal rigid bodies the following data components are available. XTF (xtfile) THF (d3thdt) LSDA (binout) Component ASCII yes X Displacement DX yes yes Y Displacement DY yes yes yes Z Displacement DZ DM yes yes Displacement Magnitude VX X Velocity yes yes VY Y Velocity yes yes VZ yes Z Velocity yes yes Velocity Magnitude VM yes yes X Acceleration AX yes yes AY Y Acceleration yes yes Z Acceleration AZ yes Acceleration Magnitude yes yes AM CX X Co-ordinate yes yes yes CY Y Co-ordinate yes yes Z Co-ordinate CZ yes yes RX yes X Rotation RY yes yes Y Rotation yes yes RZ Z Rotation yes Rotation Magnitude RM yes yes yes X Rotational Velocity RVX Y Rotational Velocity yes RVY yes RVZ yes yes Z Rotational Velocity Rotational Velocity Magnitude RVM yes yes yes RAX X Rotational Acceleration yes yes RAY Y Rotational Acceleration yes yes RAZ Z Rotational Acceleration yes yes RAM Rotational Acceleration Magnitude yes yes Direction Cosine 11 D11 yes D12 Direction Cosine 12 yes Direction Cosine 13 D13 Direction Cosine 21 yes D21 D22 yes Direction Cosine 22 D23 Direction Cosine 23 yes D31 yes Direction Cosine 31 yes Direction Cosine 32 D32 yes D33 Direction Cosine 33 yes yes Local X Displacement LDX LDY Local Y Displacement yes yes yes yes LDZ Local Z Displacement Page A.26

279 User manual Version 15.0, May 2018 T/HIS yes LVX Local X Velocity yes yes Local Y Velocity LVY yes yes LVZ yes Local Z Velocity yes Local X Acceleration yes LAX yes Local Y Acceleration LAY yes LAZ Local Z Acceleration yes yes yes yes Local X Rotation LRX LRY Local Y Rotation yes yes yes LRZ Local Z Rotation yes yes LRVX Local X Rotational Velocity yes yes yes Local Y Rotational Velocity LRVY Local Z Rotational Velocity yes LRVZ yes LRAX Local X Rotational Acceleration yes yes yes Local Y Rotational Acceleration LRAY yes yes yes Local Z Rotational Acceleration LRAZ A.22 Spotweld Data Components For spotwelds the following data components are available. XTF (xtfile) LSDA (binout) ASCII Component THF (d3thdt) yes Axial force AX yes yes yes Shear force SH Length yes LE yes FT Failure Time yes yes yes FA Failure yes yes yes Moment Magnitude MM TO Torsion yes yes The following additional data components are also available for Solid Spotwelds and Spotweld Assemblies if the DCFAIL file is written. yes yes FF DC Failure Function yes Normal Failure Term NF yes yes SF Shear Failure Term yes yes Bending Failure Term BF yes yes yes AR Spotweld Area The DCFAIL file contains additional data for spotweld solids and clusters models using the _DAIMLERCHRYSLER version of *MAT_SPOTWELD (this version of the material does not support beam elements).The file contains additional failure data showing how close to failure the spotweld is in tension, shear, bending and torsion, in addition it contains another copy the normal spotweld forces written to the SWFORC file. The new data components appear under the SOLID and ASSEMBLY sub types within the SPOTWELD menu. If the SWFORC file is also present then the normal forces and read from the SWFORC file, if the SWFORC file doesn’t exist but the DCFAIL file does then the data components (Normal, shear forces etc) that are mirrored in the DCFAIL file are read from there instead. As the DCFAIL file only contains the ID’s and not the types or each connection then it is not possible to tell from the DCFAIL file alone which items are solids and which ones are spotweld clusters. If the SWFORC file is present then T/HIS used the information in this file to match up the ID’s and work out the type of each item in the DCFAIL file. If the SWFORC file isn’t present then it attempts to use the data in the ZTF file to work out the types. Page A.27

280 T/HIS User manual Version 15.0, May 2018 A.23 SPC Data Components For SPC’s the following data components are available. XTF (xtfile) THF (d3thdt) LSDA (binout) Component ASCII yes X Force FX yes yes Y Force yes FY yes Z Force FZ yes FM Force Magnitude yes yes yes yes Moment in X MX MY Moment in Y yes yes yes MZ Moment in Z yes yes MM Moment Magnitude yes A.24 Boundary Condition Data Components For SPC’s the following data components are available. THF (d3thdt) Component XTF (xtfile) ASCII LSDA (binout) For Pressure and Force Boundary conditions the following components are available. yes Applied X Force FX yes FY Applied Y Force yes yes yes yes Applied Z Force FZ FR Applied Resultant force yes yes yes yes EN Energy from applied force For Nodal Velocity Boundary conditions the following components are available. Boundary condition motion X Force FX yes yes yes Boundary condition motion Y Force FY yes Boundary condition motion Z Force yes FZ yes FR Resultant Boundary condition motion force yes yes EN Energy from Boundary condition motion yes yes For Rigid Body Velocity Boundary conditions the following components are available. Boundary condition motion X Force yes yes FX FY Boundary condition motion Y Force yes yes yes yes FZ Boundary condition motion Z Force yes Resultant Boundary condition motion force FR yes yes EN yes Energy from Boundary condition motion MX yes yes Boundary condition motion X Moment yes yes MY Boundary condition motion Y Moment yes yes Boundary condition motion Z Moment MZ MM Boundary condition moment Magnitude yes yes Page A.28

281 User manual Version 15.0, May 2018 T/HIS A.25 FSI Data Components For Fluid structural interactions the following data components are available. XTF (xtfile) LSDA (binout) THF (d3thdt) Component ASCII yes Pressure PR yes X Force FX FY yes Y Force Z Force FZ yes Force Magnitude yes FM yes PL Porous Leakage Mass Flux yes MF LFX Leakage X Force yes LFY Leakage X Force yes Leakage X Force LFZ yes LFM yes Leakage Force Magnitude yes TE Part Temperature X yes X Co-ordinate of Sensor Y Y Co-ordinate of Sensor yes Z Z Co-ordinate of Sensor yes yes PR Pressure SO yes Cpld Solid ID Temperature at Sensor TE yes A.26 SPH Data Components For SPH’s the following data components are available. XTF (xtfile) LSDA (binout) ASCII Component THF (d3thdt) yes Density DE yes yes yes Strain in XX EXX Strain in YY yes yes EYY EZZ Strain in ZZ yes yes yes EXY Strain in XY yes yes Strain in YZ EYZ yes yes EZX yes Strain in ZX EFS yes yes Effective Stress yes yes SXX Stress in XX yes Stress in YY SYY yes yes SZZ yes Stress in ZZ SXY yes yes Stress in XY yes yes SYZ Stress in YZ yes yes Stress in ZX SZX SM Smoothing Length yes yes Page A.29

282 T/HIS User manual Version 15.0, May 2018 A.27 Tracer Data Components For tracers the following data components are available. XTF (xtfile) THF (d3thdt) LSDA (binout) Component ASCII yes X Co-ordinate CX yes yes Y Co-ordinate yes CY yes Z Co-ordinate CZ yes CV Current vector yes yes yes yes X Velocity VX VY Y Velocity yes yes yes VZ Z Velocity yes yes VM Velocity Magnitude yes yes yes Stress in XX SXX Stress in YY yes SYY yes SZZ Stress in ZZ yes yes SXY Stress in XY yes yes yes yes Stress in YZ SYZ SZX Stress in ZX yes yes yes yes EFP Effective Plastic Strain yes Density DE yes yes Relative volume RV yes Active yes yes AC A.28 Pulley Data Components For pulleys the following data components are available. ASCII LSDA (binout) Component THF (d3thdt) XTF (xtfile) yes Force FT yes yes yes Slip SL Slip Rate yes yes SR yes yes AN Warp Angle A.29 ICFD Data Components For ICFD results the following data components are available. Component LSDA (binout) ASCII THF (d3thdt) XTF (xtfile) ICFD Nodes and ICFD Points X Co-ordinate yes CX yes CY Y Co-ordinate yes Z Co-ordinate CZ CV Current vector yes VX X Velocity yes Page A.30

283 User manual Version 15.0, May 2018 T/HIS VY Y Velocity yes Z Velocity VZ yes Velocity Magnitude VM yes yes X AVelocity AVX yes Y AVelocity AVY AVZ yes Z AVelocity AVelocity Magnitude AVM yes Pressure yes PR yes DE Density Viscosity yes VC VTX X Vorticity yes VTY Y Vorticity yes VTZ Z Vorticity yes VTM yes Vorticity Magnitude yes QC Q Critical VT yes Viscous Turbulence PA P Average yes LS LSet yes Alpha A yes TE Temperature yes ICFD Drag FPX X Pressure Drag yes yes FPY Y Pressure Drag yes Z Pressure Drag FPZ FPM yes Pressure Drag Magnitude X Viscous Drag FVX yes yes Y Viscous Drag FVY Z Viscous Drag FVZ yes FVM Viscous Drag Magnitude yes MPX yes MX Pressure Drag yes MY Pressure Drag MPY MPZ MZ Pressure Drag yes MPM Pressure Drag Moment Magnitude yes yes MVX MX Viscous Drag yes MY Viscous Drag MVY MZ Viscous Drag MVZ yes MVM Viscous Drag Moment Magnitude yes ICFD Temperature TAA Temperature Area Average yes yes TSA Temperature Sum Average yes Average Heat Flux TEH AR Total Area yes HTC Heat Transfer Coefficient yes Page A.31

284 T/HIS User manual Version 15.0, May 2018 A.30 CESE Data Components For CESE results the following data components are available. XTF ASCII THF (d3thdt) Component LSDA (binout) (xtfile) CESE Element and CESE Points yes X Co-ordinate CX Y Co-ordinate yes CY Z Co-ordinate yes CZ yes CV Current vector X Velocity yes VX VY Y Velocity yes VZ Z Velocity yes VM yes Velocity Magnitude yes VTX X Vorticity VTY yes Y Vorticity VTZ Z Vorticity yes yes VTM Vorticity Magnitude DE Density yes yes PR Pressure yes Temperature TE CESE FSI Drag yes FPX X Pressure Force Y Pressure Force yes FPY FPZ Z Pressure Force yes FPM Pressure Force Magnitude yes CESE Segment Set Drag yes X Pressure Force FPX FPY Y Pressure Force yes yes FPZ Z Pressure Force yes FPM Pressure Force Magnitude X Viscous Force yes FVX FVY Y Viscous Force yes yes FVZ Z Viscous Force yes Viscous Force Magnitude FVM AR Total Area yes Page A.32

285 User manual Version 15.0, May 2018 T/HIS A.31 EM Data Components For EM results the following da XTF ASCII THF (d3thdt) Component LSDA (binout) (xtfile) EM Element, EM Node and EM Points yes CX X Co-ordinate Y Co-ordinate CY yes Z Co-ordinate CZ yes Current vector yes CV yes ECX X Current Y Current yes ECY ECZ Z Current yes Current Magnitude ECM yes yes BFX X BField BFY Y BField yes BFZ yes Z BField BFM BField Magnitude yes AFX X AField yes yes AFY Y AField AFZ Z AField yes AFM AField Magnitude yes yes S Sigma yes Mu-R MUR JHR yes JHRate X Lorentz Force LFX yes yes Y Lorentz Force LFY Z Lorentz Force LFZ yes LFM Lorentz Force Magnitude yes EFX yes X EField yes Y EField EFY EFZ Z EField yes EFM EField Magnitude yes A.32 Particle Blast Data Components For PBLASTs the following data components are available. THF (d3thdt) LSDA Component ASCII XTF (xtfile) (binout) Particle blast components Air internal energy yes yes AIE yes yes DPIE Detonation product internal energy yes yes Outside domain internal energy OIE ATE Air translational energy yes yes Page A.33

286 T/HIS User manual Version 15.0, May 2018 yes yes DPTE Detonation product translational energy yes OTE yes Outside domain translational energy Part components yes Air pressure APR yes Detonation product pressure DPPR yes yes Resultant pressure yes RPR yes Surface Area yes AR yes yes yes Air X Force AFX AFY Air Y Force yes yes AFZ Air Z Force yes yes yes DPFX Detonation product X Force yes yes yes DPFY Detonation product Y Force Detonation product Z Force yes yes DPFZ yes RFX Resultant X Force yes yes Resultant Y Force RFY yes RFZ Resultant Z Force yes yes A.33 Pressure Tube Data Components For pressure tubes the following data components are available. XTF Component LSDA (binout) ASCII THF (d3thdt) (xtfile) Cross section area AR yes yes yes Density DE yes PR yes Pressure yes yes Velocity VEL yes A.34 Bearing Data Components For bearings the following data components are available. XTF ASCII Component THF (d3thdt) LSDA (binout) (xtfile) yes X Force FX Y Force yes FY yes FZ Z Force yes X Moment MX Y Moment yes MY MZ yes Z Moment DX X Displacement yes yes Y Displacement DY yes DZ Z Displacement yes X Angle AX AY Y Angle yes AZ Z Angle yes Page A.34

287 User manual Version 15.0, May 2018 T/HIS LFX Local X Force yes yes LFY Local Y Force LFZ yes Local Z Force LMX Local X Moment yes yes LMY Local Y Moment LMZ Local Z Moment yes yes LDX Local X Displacement yes LDY Local Y Displacement Local Z Displacement yes LDZ LAX Local X Angle yes yes LAY Local Y Angle yes Local Z Angle LAZ Page A.35

288 T/HIS User manual Version 15.0, May 2018 Page A.36

289 User manual Version 15.0, May 2018 T/HIS APPENDIX B - T/HIS CURVE FILE FORMAT A curve file is a file of x, y values which can be read into T/HIS for plotting. It can be written by T/HIS or by another program, or created using a text editor. The format is as flexible as possible to allow many types of data to be handled. : Line 1 Title Line 2 : X axis label : Line 3 Y axis label : Curve label Line 4 X, Y point 1 Line 5 : Line 6 : X, Y point 2 :: X, Y point n Line n+4 : The X and Y values can be in any format as long as the two values are separated by either a space or comma. Up to 500000 points can be input. Several curves can be put in one file sequentially, separated by the word CONTINUE. The title and three label lines must be present for each curve. A comment line may be included anywhere in the file by starting the line with a ’$’. Comment lines above the curve’s title can contain styles and curve tags associated with the corresponding curve. B.1 Curve STYLE Information as a style request for the following curve and From version 9.1 onwards T/HIS will recognise a line starting $ STYLE the curve will be displayed with the corresponding style line will take the format A $ STYLE $ STYLE : LINE STYLE, LINE COLOUR, LINE WIDTH, LINE SYMBOLS, SYMBOL FREQUENCY $ STYLE options are available: The following Available styles Style options Default solid solid LINE STYLE dash none white dependent on curve# LINE COLOUR red green blue cyan magenta yellow orange turquoise indigo lime LINE WIDTH fine normal normal bold heavy Page B.1

290 T/HIS User manual Version 15.0, May 2018 LINE SYMBOLS triangle dependent on curve# square diamond hourglass cross circle start dot null frequency number (integer) SYMBOL FREQUENCY B.2 Curve TAGs $ TAG T/HIS will recognise a line starting with as a tag for the following curve and the tag can be used in T/HIS to reference the corresponding curve $ TAG a line will take the format $ TAG : tag name B.3 Curve UNITs From version 9.4 onwards a T/HIS curve file can also contain information on the Unit system and the X and Y axis units. $ UNIT SYSTEM and will take the format A unit system is defined by a line starting with $ UNIT SYSTEM : system name The following unit systems names can be specified by using either the full name or just " Un ." U1: m,kg,s (SI) U2: mm,T,s U3: mm,kg,ms U4: mm,gm,ms U5: ft,slug,s U6: m,T,s $ X AXIS UNIT The X and Y axis units are defined by a line starting with either or and take one of $ Y AXIS UNIT the 2 following formats unit name $ X AXIS UNIT : mass,length,time,angle,temperature,current $ X AXIS UNIT : For the 1st format the following predefined unit names are available. Energy Den Rotation Time Momentum Density Mass Flow Rot Vel Energy Work Rot Accel Stress Frequency Strain Power Temperature Length Force Area Displacement Thermal Flux Force width Velocity Volume Moment Mass Pressure Moment width Accel If the axis units are NOT one of these predefined units then the second input format can be used to define the unit in current should be the terms of it’s basic properties. The values for mass, length, time, angle, temperature and powers that are used to describe the unit in terms of it’s fundamental dimensions. Some examples of common units defined using this method are shown below. Mass Length Time Angle Temperature Current Unit 0.0 1.0 0.0 0.0 0.0 Time 0.0 1.0 0.0 0.0 0.0 Displacement 0.0 0.0 1.0 0.0 0.0 0.0 0.0 Velocity -1.0 1.0 -2.0 0.0 0.0 0.0 Acceleration 0.0 1.0 -2.0 0.0 0.0 0.0 -1.0 Stress Page B.2

291 User manual Version 15.0, May 2018 T/HIS B.4 Example The following example shows a curve file containing 2 curves. The first curve will be plotted with a bold, solid, green line with triangular symbols every other data point. The curve contains 5 data points and is given a reference tag CURVE_1 The second curve will be plotted with a dashed, white, normal line. No symbols will be displayed. The curve contains 2 data points and has no reference tag. $ Comment line Style line $ STYLE : solid,green,bold,triangle,2 $ TAG : CURVE_1 Tag line $ Comment line ;Title CURVE FILE EXAMPLE ;X axis label Time ;Y axis label Displacement Curve number 1 ;Curve label 0 2.0 ;1st data pair 1.0 4E-3 4.0, 4.7 5 4 ;End of 1st curve 10.0 8.9 CONTINUE Comment line $ Comment line $ $ STYLE : dash,white,,, Style line ;Title CURVE FILE EXAMPLE Time Displacement Curve number 2 0.0 7E2 2.0 8.7E-9 Notes: The abscissa (x axis) values are assumed to be in the correct order. The free format allowed for the data points. The style line must contain 5 comma separated words in the order LINE STYLE, LINE COLOUR, LINE WIDTH, LINE SYMBOLS, SYMBOL FREQUENCY to be successfully understood by T/HIS. If any words are unspecified in the style line, as in curve 2, T/HIS will take the default option. Page B.3

292 T/HIS User manual Version 15.0, May 2018 Page B.4

293 User manual Version 15.0, May 2018 T/HIS APPENDIX C - T/HIS BULK DATA FILE FORMAT Format of a T/HIS Bulk Data File. A bulk data file contains a number of curves that share the same X values. The format of the file is as follows: : Line 1 Title Number of curves (maximum 12) : Line 2 1 t e Format, see below : N Line 3 o N o t e 2 below Line 4 : Multipliers on values, see Line 5 : Axis labels, see e 3 below N t o N o t e 4 below Line labels, see Line 6 : X, Y1, Y2, Y3 ... point 1 : Line 7 X, Y1, Y2, Y3 ... point 2 Line 8 : X, Y1, Y2, Y3 ... point n : Line n+6 Up to 500000 points can be read in for each curve. The format for the point data must be given as a standard Fortran format statement, for example (F10.3, Note 4F10.2). The external brackets around the format must be included. If the data can be read in as a free format 1 or leave this line blank. Note however, free data is read in more slowly than formatted data. then type FREE Note The multipliers are the amount by which the values read in are to be multiplied. For example you may wish to 2 (gravity) to mm/s correct from ms to s or units of G 2 . On this line give the multipliers in the order X-value, Y1-value, Y2-value, etc. Separate each multiplier by a space or comma. A zero value is assumed to be 1. If all curves are to be read in as defined leave this line blank. Note The axis labels are character strings, separated by commas given in the following order. 3 X-axis label, Y1-axis label, Y2-axis label, etc. Note The line labels are character strings separated by commas given in the following order. 4 Line label 1, Line label 2, Line label 3, etc. $ A comment line may be included any where in the file by starting the line with a . The following shows a bulk data file with three curves and seven points on each curve. $ Comment line Title of the curves 3 FREE $ A multiplier of 10 on X values and 5 on Y2 values 10,,5, x-axis,y1-axis,y2-axis,y3-axis curve 1,curve 2,curve 3 $ Now for the data 0.0 0.0 1.0 2.0 1.0 1.0 3.0 4.0 2.0 2.0 4.0 5.0 2.4 4.4 5.5 7.4 3.3 7.8 5.8 9.2 4.4 10.0 12.0 13.0 Page C.1

294 T/HIS User manual Version 15.0, May 2018 Page C.2

295 User manual Version 15.0, May 2018 T/HIS APPENDIX D - FILTERING This Appendix describes the filtering options within T/HIS. Curves can be filtered to remove high frequency noise. The technique is typically applied to acceleration and force traces. Options available include standard filters (Channel Frequency Classes 60, 180, 600 and 1000 as per British Standard BS AU 228: Part 1: 1989, and the USA’s National Highway Traffic Safety Administration (NHTSA) FIR filter). The standard filters (except the FIR filter) are all special cases of the Butterworth filter. D.1 Curve Regulation All filtering options require the curves to have a constant time increment between points. This will generally be the case if the curves are LS-DYNA time history results. If not, the REGULARISE option will convert the curve to constant time increment. Typically the time increment should be at least 10 times the cut-off frequency; 10kHz (a 0.0001 second interval time base) is a good choice for automotive crash applications. D.2 Use of the Butterworth Filter Option The Butterworth filter is a low pass filter with two input variables; order and cut-off frequency. The order of the filter controls the roll-off rate, as shown here in the figure (right) This is a 300Hz filter. It can be seen that higher orders attenuate the results more quickly: they have a higher roll-off rate. The cut-off frequency is the frequency at which the gain of the filter is -3dB (i.e. the magnitude of signals at this frequency is halved by the filter). The lower the frequency the less noise passes through; but any peaks in the signal tend to get reduced in magnitude and delayed in time. Page D.1

296 T/HIS User manual Version 15.0, May 2018 Page D.2

297 User manual Version 15.0, May 2018 T/HIS Page D.3

298 User manual Version 15.0, May 2018 T/HIS The above figures show examples of filtering frequency using the four standard SAE filters (60, 180, 600 and 1000 Hz cut-off frequencies: see below). These show clearly how the original signal is smoothed. D.3 Butterworth Filter Implementation Two refinements have been incorporated: • Reflection of beginning and end of curves to minimise end-effects of filtering (see the figure below). • The curve is first passed forwards through the filter, then the resulting signal is passed through backwards. This procedure minimises phase change errors. The poles and zeros of the filter are calculated such that the desired cut-off frequency is achieved after two passes. Page D.4

299 User manual Version 15.0, May 2018 T/HIS D.4 Standard SAE Filter Options Channel Filter Classes 60, 180, 600 and 1000 are Butterworth filters with the following parameters: Order Filter Class Cut-off Frequency 100Hz 2 60 180 300Hz 2 2 600 1000Hz 1000 1650Hz 2 The gain characteristics are compared with the limits given in BS AU228 in the following four figures. D.5 Standard FIR filter option The FIR filter (Finite Impulse Response) is specified by NHTSA. It is used for filtering thoracic accelerations from side impact dummies; the filtered accelerations are then used in calculation of TTI (Thoracic Trauma Index). Its characteristics are: • A passband frequency of 100Hz. • A stopband frequency of 189Hz. • A stopband gain of -50dB. A passband ripple of 0.0225dB. • It is based on a standard Fortran programme available from NHTSA. Page D.5

300 T/HIS User manual Version 15.0, May 2018 Page D.6

301 User manual Version 15.0, May 2018 T/HIS Page D.7

302 T/HIS User manual Version 15.0, May 2018 Page D.8

303 User manual Version 15.0, May 2018 T/HIS APPENDIX E - INJURY CRITERIA T/HIS has the option to calculate two of the injury criteria that are used currently in occupant protection. These are the head impact criteria or HIC value and 3ms clip value. These criteria are defined as follows: E.1 HIC Value The HIC value is calculated from the resultant acceleration time history of the head centre of gravity filtered through a class 1000 filter. The HIC value is then calculated from; Where a is the acceleration expressed in g, and t and t are any two points in time. It is now usual for an upper limit 1 2 on the range t of 36ms to be applied. -t 1 2 E.2 3ms Clip The 3ms clip value is the maximum value of acceleration that is exceeded for a period of not less than 3 ms. This is not an easily comprehended definition: the following may be of more use: At each time point T, take the interval (T to T+3ms); (1) (2) lowest acceleration value; In this interval find the (3) The "3ms Clip" value is the interval (T to T+3ms) which has the largest "lowest" value as calculated in (2) above. So, perhaps, a better definition might be: "the 3ms interval with the highest lowest acceleration value". E.3 Viscous Criteria The VC value is calculated from a compression time history using the following formula (the values of the constants A and B assume the compression is in metres); Page E.1

304 T/HIS User manual Version 15.0, May 2018 E.4 Acceleration Severity Index The ASI value is calculated from 3 acceleration time histories using the following fomula; ax,ay,az are the X,Y,Z accelerations of the vehicle: Where : - for the 1998 calculation (BS EN 1317-1:1998) they are averaged over a 50ms moving interval. - for the 2010 calculation (BS EN 1317-1:2010) they are passed through a four-pole phaseless Butterworth filter with a 13Hz cut-off frequency. xl,yl,zl are acceleration limits xl = 12g yl = 9g zl = 10g. The acceleration input curves should be in units of g. If the input curves are in any other unit a conversion factor can be input to convert back to g. When selecting input curves it is assumed that the X curve is numerically the first curve (the one with the lowest id) of the ones selected and the Z curve is the last. If they are in a different order then the acceleration limits can be modified to reflect the different order. For more information on ASI see BS EN 1317-1. NOTE: For the BS EN 1317-1:2010 calculation T/His assumes the curves have been filtered through a Class 180 filter and padded with +/-0.5seconds of data as per the specification. Page E.2

305 User manual Version 15.0, May 2018 T/HIS E.5 Theoretical Head Impact Velocity & Post Impact Head Deceleration The theoretical head impact velocity concept has been developed for assessing occupant impact severity for vehicles involved in collisions with road vehicle restraint systems. The occupant inside the vehicle is considered to be a freely moving object that, as the vehicle changes its speed due to the contact with the restraint system, continues moving until it strikes the vehicle interior. The velocity magnitude at the time of impact with the vehicle interior is considered to be a measure of the vehicle to vehicle restraint system impact severity. After impact the head is assumed to continue moving with the vehicle during the rest of the impact event. The post impact head deceleration (PHD) is calculated as the peak value using a 10ms moving average of the resultant vehicle acceleration after the THIV impact. The THIV calculation requires the following inputs • Horizontal Vehicle Acceleration Time History (Ax) Lateral Vehicle Acceleration Time History (Ay) • • Yaw Rate Time History • Horizontal Distance from the occupants head to vehicle (Dx) • Lateral Distance from the occupants head to vehicle (Dx) For more information on THIV and PHD see BS EN 1317-1. Page E.3

306 T/HIS User manual Version 15.0, May 2018 Page E.4

307 User manual Version 15.0, May 2018 T/HIS E.6 Biomechanical neck injury predictor (NIJ) The biomechanical neck injury predictor is a measure of the injury due to the load transferred through the occipital condyles. Its calculation combines the neck axial force and the flexion/extension moment about the occipital condoyles. It is used in association with the USSID dummy for standard American frontal impact tests. The shear force (Fx), axial force (Fz) and bending moment (My) are measured by the dummy upper neck load cell for the duration of the crash, using force and moment definitions consistent with SAE J221/1. T/HIS will caculate the bending moment using the equation: My = My’ - e • Fx Where e is the e distance specified in the input window, Fx is the shear force. Shear force, axial force and bending moment must be filtered using an SAE Channel Frequency Class 600 filter (C600) for the purposes of calculation. During the collision, the Axial Force (Fz) can be in either tension or compression whilst the occipital condyle bending moment (Mocy) can be in either flexion or extension. This results in 4 possible loading conditions corresponding to the 4 curves output by T/HIS; tension-extension (Nte), tension-flexion (Ntf), compression-extension (Nce), and compression-flexion (Ncf). At each point in time only one of these 4 conditions can be met, hence the NIJ value is calculated for that condition and the value for the other 3 conditions is considered a value of zero.. The expression for calculating each NIJ loading condition is given by: NIJ = (Fz/Fzc) + (Mocy/Myc) where Fz and Mocy are as defined above, Fzc and Myc refer to the axial force and Bending moment critical values, given below: and Mocy The values of Fzc and Myc vary depending on the occupant, the occupants position and the sign of Fz For the dummy to pass the test, the following conditions must be met: (i) None of the 4 NIJ values may exceed 1.0 at any time during the event (ii) Peak Tension Force (Fz), measured at the upper neck load cell, may not exceed the specific dummy’s limit (e.g. 2070N for the Hybrid III small female) at any time (iii) Peak Compression Force (Fz), measured at the upper neck load cell, may not exceed the specific dummy’s limit (e.g. 2520N for the Hybrid III small female) at any time For more information on the use and calculation of NIJ, refer to the FMVSS 208 document E.7 The Thoracic Trauma Index (TTI) The Thoracic Trauma Index is used as a predictor of thoracic injury severity in the USSID dummy in standard American Side Impact tests. The Index considers both rib and Thorax acceleration in an impast. The expression for calculating TTI is given by: TTI = (G(R) + G(LS))/2 Where G(R) is the greater of the peak accelerations of either the upper or lower rib, expressed in g, and G(LS) is the peak acceleration in the lower spine (T12), expressed in g. For the dummy to pass the test, the following conditions must be met: (i) The TTI value must not exceed; (a) 85g for a passenger car with 4 side doors, and for any multipurpose vehicle, truck or bus (b) 90g for a passenger car with 2 side doors (ii) The peak lateral acceleration of the pelvis shall not exceed 130g Page E.5

308 T/HIS User manual Version 15.0, May 2018 (iii) Any side door, struck by the moving deformable barrier, shall not seperate totally from the car. (iv) Any door not struck by the moving deformable barrier must meet the following requirements; (a) The door chall not disengage from the latched position (b) The latch shall not seperate from the striker (c) The hinge components shall not seperate from each other or from their attachment to the vehicle (d) Neither the latch nor the hinge systems of the door shall pull out of their anchorage For more information on the use and calculation of TTI, refer to the FMVSS 214 document Page E.6

309 User manual Version 15.0, May 2018 T/HIS APPENDIX F - Curve Correlation COR1 and COR2 The Correlation functions COR1 and COR2 provide a measure of the degree to which two curves match. When comparing curves by eye, the quality of correlation may be judged on the basis of how well matched are the patterns of peaks, the overall shapes of the curves, etc, and can allow for differences of timing as well as magnitude. Thus a simple function based on the difference of Y-values (such as T/HIS ERR function) does not measure correlation in the same way as the human eye. The T/HIS correlation function attempts to include and quantify the more subtle ways in which the correlation of two curves may be judged. The correlation function may be applied to any two curves whose x-values increase monotonically (e.g. responses versus time). The results are independent of the units used, e.g. milliseconds or seconds are both acceptable. The sign of the y-values is not important. Only the overlap time period is considered (i.e. the range of x-values for which both curves have a y-value). The time period (range of X-values) and maximum absolute Y-value are used to non-dimensionalise the curves such that x-values run from 0 to 1, and the maximum absolute y-value is 1. Five measures of correlation are calculated. Each is given equal weighting. The final correlation score is given as a percentage - two identical curves would score 100%. The first two measures require identification of peaks in the curves. An unlimited number of peaks in each curve will be considered. A peak is defined as a local maximum (or in the case of negative y-values a minimum), satisfying the following criteria: • Absolute y-value at least 0.5 • Separated from any larger peak by a trough (local minimum) at least 0.2 deep. Peaks of positive or negative signs are considered. Peaks are matched only against peaks of the same sign in the other curve. Measure 1 - Peak values For each identified peak in Curve A, find the maximum value in Curve B within the same time range for which the value in Curve A is within a tolerance of the peak value. Points are lost according to the error in y-values compared to a tolerance limit. Repeat for peaks in curve B against values in Curve A. This measure allows for the situation where curves are similar but the peaks are more strongly delineated in one of the curves, such that the program does not recognise the other curve as having a peak in that location. Measure 2 - Peak matching For each identified peak in Curve A, find the closest identified peak in Curve B. Points are lost according to the largest error (timing or y-value) compared to tolerance limits; points are also lost if there is no corresponding peak in Curve B. Repeat for Curve A peaks matched against those of Curve B. Page F.1

310 User manual Version 15.0, May 2018 T/HIS This measure picks up matching of primary and secondary peaks in the curves, which may correspond to physical events. Measure 3 - Area matching The integral of each curve is calculated by summing the area of the curve above y=0 and the absolute area of the curve below y=0. Points are lost according to the difference compared to a tolerance limit. Measure 4 - Curve shape (low frequency excursion) The curves are filtered. A band is drawn around filtered curve A (using positive and negative offsets in x and y). The area of excursions of filtered Curve B outside the band is calculated. Points are lost according to the excursion area compared to a tolerance limit. The process is repeated for filtered Curve A excursions from a band drawn around filtered curve B Page F.2

311 User manual Version 15.0, May 2018 T/HIS Measure 5 - Curve shape (full curve) The same as Measure 4 except that the curves are not filtered and different tolerance limits and band sizes may be used. Output T/HIS prints the overall correlation percentage and the marks from each measure to the screen or to a text file. A new curve is created from each input curve showing the identified peaks (used in measures 1 and 2). As the same curve could be used as input to multiple correlations the correlation percentage is stored internally in T/HIS with the 2 output curves NOT the input curves. The correlation percentage can be accessed from within FAST-TCF scripts by requesting the "correlate" property for either of the 2 ouptut curves. e.g. operation correlate strict curve_1 curve_2 tag curve_3 curve_4 Calculate correlation between "curve_1" and "curve_2". Tag the curves containing the peaks as "curve_3" and "curve_4" tab output.txt curve_3 correlate Output the curve correlation value from "curve_3" to the file "output.txt" taba output.txt curve_4 correlate Append the curve correlation value from "curve_4" to the file "output.txt" Selection of Parameters The Correlation algorithm has many tolerance limits and other inputs. Two sets of these parameters have been pre-selected, to offer strict or less strict judgement of correlation (buttons COR1 and COR2 in the Automotive menu). The parameters selected are: COR1 Decription Criterion COR2 Value Value Fraction difference in timing that scores zero points for this Peak matching 0.2 0.4 peak Fraction difference in value that scores zero points for this Peak matching and peak 0.25 0.5 peak values Page F.3

312 T/HIS User manual Version 15.0, May 2018 0.5 Area matching Fraction difference in integral that scores zero points 0.3 0.05 Size of tolerance band in X and Y, as fractions of the curve Curve shape (low frequency 0.025 trend) extent in X and Y 0.1 0.2 Curve shape (low frequency Excursion area fraction scoring zero points trend) Curve shape (full curve) 0.025 0.05 Size of tolerance band in X and Y, as fractions of the curve extent in X and Y Excursion area fraction scoring zero points 0.4 0.2 Curve shape (full curve) It is expected that, if COR1 rates Curves A and B as better correlated than C and D, then COR2 would also rate the pairs of curves in the same order. The percentage correlation would be greater in each case from COR2 than from COR1. COR1 will provide a greater difference (discrimination) between well-correlated and very well-correlated pairs of curves; while COR2 will provide greater discrimination between averagely-correlated and poorly-correlated pairs of curves. The purpose of offering both versions of the correlation function is to allow the user to select a calibration of the function appropriate to the typical input curves used. Page F.4

313 User manual Version 15.0, May 2018 T/HIS Examples COR1 COR2 17% 42% 27% 62% Page F.5

314 T/HIS User manual Version 15.0, May 2018 70% 88% 84% 92% Page F.6

315 User manual Version 15.0, May 2018 T/HIS COR3 The Correlation function COR3 provides another measure of the degree to which two curves match based on the distance between the two curves. This function first normalises the curves using two factors, specified either by the user or defaults calculated by the program (the maximum absolute X and Y values of both graphs). For each point on the first normalised curve, the shortest distance to the second normalised curve is calculated (the thick black lines on the image above). The root mean square value of all these distances is subtracted from 1 and then multiplied by 100 to get an index between 0 and 100. The process is repeated along the second curve (the thick red lines show the distances) and the two indices are averaged to get a final index. The higher the index the closer the correlation between the two curves. Note that the choice of normalising factors is important. Incorrect factors may lead to a correlation index outside the range of 0 to 100. WIF The Correlation function WIF provides another measure of the degree to which two curves match. It uses the Weighted Integrated Factor method: Page F.7

316 T/HIS User manual Version 15.0, May 2018 Page F.8

317 User manual Version 15.0, May 2018 T/HIS APPENDIX G - The ERROR Calculation The ERROR function outputs a number of values to indicate the degree of correlation between 2 curves. The function requires two input curves A reference curve to compare against ( the first curve • selected ) • The curve to compare against the reference Once 2 curves have been selected the a check is carries out to see if the two curves contain the same number of points and if the range of x-axis values the same for the two curves. If any inconsistencies are found then a warning message is generated. The following values are then calculated Maximum difference and time of variation Maximum difference as a %age of the reference value at the same time Maximum difference as a %age of the peak reference value Average difference Average difference as a %age of the peak reference value T/HIS Regression coefficient. This is a value between 0 and 1 where 1 means 100% correlation Page G.1

318 T/HIS User manual Version 15.0, May 2018 Page G.2

319 User manual Version 15.0, May 2018 T/HIS APPENDIX H - The "oa_pref" preference file This file contains code-specific preferences that can be used to modify the behaviour of T/HIS. It is optional and, where entries (or the whole file) are omitted T/HIS will revert to its default settings. "oa_pref" naming convention and locations The file is called "oa_pref. It is looked for in the following places in the order given: The optional administration directory defined by the environmental variable ( $OA_ADMIN • or $OA_ADMIN_xx where xx is the release number). • The site-wide installation directory defined by the environment variable ( $OA_INSTALL ) %USERPROFILE% (Windows) The user’s home directory: $HOME • (Unix/Linux) or The current working directory • s t a l l a t i o n o r g a n i s See t i o n for an explanation of the directory structure. I n a All four files are read (if they exist) and the last preference read will be the one used, so the file can be customised for a particular job or user at will. Files do not have to exist in any of these locations, and if none exists the programme defaults will be used. On Unix and Linux: on Unix and Linux is usually the home directory specified for each user in the system password file. $HOME ") will show the value of this variable if set. The shell command " printenv setenv " (or on some systems " " will show this. " directory for the user. The command " ~ If not set then it is defined as the " cd; pwd On Windows: \ on Windows is usually %USERPROFILE% C:\Documents and Settings\ " command from an MS-DOS prompt will show the value of this and other variables. set Issuing the " Generally speaking you should put • Organisation-wide options in the version in $OA_ADMIN_xx and/or $OA_INSTALL, • User-specific options in $HOME / %USERPROFILE% • Project-specific options in the current working directory. The file contains preferences for the SHELL (lines commencing shell*), THIS (lines commencing this*), D3PLOT (lines commencing d3plot*), PRIMER (lines commencing primer*)and REPORTER (lines commencing reporter*). All lines take the format . I A A D M I N _ x x and/or $ O $ _ _ N S T A L L directory. O The general copy of the preference file should be present in the A This should contain the preferences most suitable for all software users on the system. An individual’s specific preferences file can be stored in the individual’s home area. This can be used to personally customise the software to the individual’s needs. Whenever one of the programs whose preferences can be stored in the oa_pref file is fired up, the program will take O A _ A D M I N _ x x directory (if it exists) then the preferences first from the general preference file in the $ L A N S T A L I directory, then from the file in the user’s home area, then from the current working directory. $ _ O Preferences defined in the general oa_pref file can be modified in the user’s personal file but they can’t be removed by it. From version 9.4 onwards preferences can be locked. If a preference is locked it cannot be changed in an oa_pref file in rather than ’this*’ . a more junior directory. To lock a preference use the syntax ’this#’ The interactive Preferences Editor You are free to edit oa_pref files by hand, but there is an interactive "Preferences Editor" that may be called from within T/HIS that makes the job much easier. Options, Edit Preferences or through the Preferences Button in the Tool menu It is started by The preferences editor reads an XML file that contains all possible preferences and their valid options, and allows you to change them at will. In this example the user is changing the background colour in D3PLOT. Note that changes made in the Preferences editor will not affect the current session of D3PLOT, they will only take effect the next time it is run. Page H.1

320 T/HIS User manual Version 15.0, May 2018 If you have write permission on the oa_pref file in the $OASYS directory you will be asked if you want to update that file, otherwise you will only be given the option of updating your own file in your $HOME / $USERPROFILE directory. In this example the user is changing the background colour. The option is "active" (ie present in the oa_pref file) and currently is set to WHITE. Usage is: • Select an option in the Tree on the left hand side • Make it active / inactive • If active select a value from the popup, or type in a value if necessary The colour of the highlighting in the left hand side tree is significant: Green Means that the option has been read from your $HOME/$USERPROFILE file. Red Means that the option has been read from the $OA_INSTALL file. Magenta Means that the option had been read from the $OA_ADMIN file. In either event, regardless of the data source, the updated option will be written to the file chosen when you started the preferences editor. e a b o e e ), and option read from the master $OASYS file, amended, and written to Because of the order of file reading ( s v your local $HOME file will take precedence when you next run T/HIS. Locking Preferences From version 9.4 onwards preferences can be locked. Beside each option in the preference editor is a padlock symbol. If the symbol is green then the option is unlocked, if it is red then it is locked. If a preference option has been locked in a file that the user can not modify then an error message will be generated if the user tries to edit that option. If a user manually edits the "oa_pref" file to try and set an option that has been locked in another preference file then the option will be ignored in the users preference file. Page H.2

321 User manual Version 15.0, May 2018 T/HIS Format of the oa_pref file *

322 T/HIS User manual Version 15.0, May 2018 line_width 1.0, 2.0, 4.0, 8.0 2.0 Default line width for curves (pixels) File containing datum_file DATUM line definitons Specify a macro_directory $OA_INSTALL/this_library/macros directory for T/HIS to look in for MACRO definitions master_group_file Filename for default group information read_group_files Default action IGNORE IGNORE, DELETE, when a group OVERWRITE, INCREMENT file is found in a model directory and T/HIS has already read a group file. Whether the TRUE, FALSE FALSE pemag_calculation_v12 PEMAG calculation uses the v12 logic. Default format COLUMN, DEFAULT, plot_format COLUMN AUTO, OFF, FULL, of plot FLOATING prefix_format Select the MODEL, DIRECTORY, MODEL prefix ROOTNAME, USER formatting for Legend curve labels. Time interval regularise_dt 0.0001 for automatic curve regularisation Display 2nd y TRUE, FALSE FALSE second_y_axis axis Display HIC show_hic_value ON, OFF OFF value ON, OFF OFF Display 3ms show_3ms_value Clip value Display THIV OFF ON, OFF show_thiv_value value Display PHD ON, OFF OFF show_phd_value value Page H.4

323 User manual Version 15.0, May 2018 T/HIS injury_text_colour FOREGROUND FOREGROUND, Colour used to CURVE, WHITE, display injury criteria values BLACK, RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 Page H.5

324 T/HIS User manual Version 15.0, May 2018 injury_line_colour FOREGROUND, FOREGROUND Colour used to CURVE, WHITE, display injury criteria lines BLACK, RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 Turn ON/OFF ON, OFF ON auto_blank AutoBlank Set the default auto_blank_mode MODEL, MODEL COMPONENT_ID, AutoBlank ENTITY_TYPE, mode ENTITY_ID, COMPONENT_TYPE, SURFACE, CURVE Directory to start_in start T/HIS in Display show_license_warning TRUE, FALSE TRUE Window containing License System messages Save position save_window_positions TRUE, FALSE TRUE of undocked windows between sessions vc_method Default method ECER95, IIHS ECER95 for calculating Viscous Criteria Default method asi_method 2010 2010, 1998 for calculating Acceleration Severity Index Page H.6

325 User manual Version 15.0, May 2018 T/HIS curve_palette Controls how OFF DEFAULT, EXTENDED, many colours are used by NO_GREY, FULL curves, default(6), extended(13), no_grey(27), full(30+any user defined) 10 Maximum ftcf_error_count number of errors before a FAST-TCF script terminates Value to assign 1.0E+18 null_value to curves when data doesn’t exist CSV file field COMMA, TAB, SPACE COMMA csv_separator separator The following options control the automatic creation of curve groups. Valid arguments Default Preference Type Description TRUE group_by_model Automatically create a curve group TRUE, FALSE for each model TRUE, FALSE group_by_type Automatically create a curve group FALSE for each entity type data is read for TRUE, FALSE FALSE Automatically create a curve group group_by_component for each component type data is read for component_group_name Controls how curve groups created COMPONENT COMPONENT, for components are named) COMPONENT_AND_TYPE group_by_file_index Automatically create a curve group FALSE TRUE, FALSE based on the index of a curve read from a curve file The following options control the columns that are dsiplayed by default in the curve table Description Valid arguments Default Preference Type Display Curve IDs ctable_show_curve_id TRUE, FALSE TRUE TRUE, FALSE ctable_show_label TRUE Display Curve Labels TRUE ctable_show_model TRUE, FALSE Display Files / Models ctable_show_type Display Entity Types TRUE, FALSE TRUE TRUE, FALSE TRUE ctable_show_entity_id Display Entity Ids TRUE, FALSE ctable_show_component Display Components TRUE TRUE, FALSE TRUE Display Curve Styles ctable_show_style Display Directories TRUE, FALSE TRUE ctable_show_directory The following options control the default location and name of where T/HIS looks for model database files. Description Type Default Preference Valid arguments Directory to look in for model database (XML) files database_dir database_file Default model database (XML) file -1 - Number of levels to automatically expand in model database tree 0 database_expand (-1 ALL) 2147483646 The following strings and values control display options Type Default Preference Description Valid arguments axis_width 1.0, 2.0, 4.0, 8.0 2.0 Default line width for axis (pixels) Page H.7

326 User manual Version 15.0, May 2018 T/HIS FOREGROUND axis_colour Axis colour FOREGROUND, BACKGROUND, WHITE, BLACK, RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 Turn ON/OFF ON axis_top ON, OFF drawing of graph top axis Turn ON/OFF axis_right ON, OFF ON drawing of graph right axis TRUE, FALSE Display border border_on TRUE border_width 1.0 Default line 1.0, 2.0, 4.0, 8.0 width for border (pixels) FOREGROUND border_colour Border colour FOREGROUND, BACKGROUND, WHITE, BLACK, RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 TRUE, FALSE Display grid grid_on FALSE 1.0, 2.0, 4.0, 8.0 2.0 Default line grid_width width for grid (pixels) FOREGROUND, BACKGROUND, WHITE, BLACK, FOREGROUND Grid colour grid_colour RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 symbols_on TRUE, FALSE FALSE Display symbols Symbol symbol_freq 1 - 2147483646 1 Frequency Display lines TRUE, FALSE TRUE lines_on Page H.8

327 User manual Version 15.0, May 2018 T/HIS fix_styles Fix curve styles FALSE TRUE, FALSE to cycle through the default colours/styles regardless of the curve number BLACK FOREGROUND, CURVE, WHITE, BLACK, RED, Legends legend_bg_colour background GREEN, BLUE, CYAN, MAGENTA, YELLOW, colour ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 0 legend_bg_trans 0 - 100 Legend background transparency show_prefix Allows you to AUTO AUTO, ON, OFF toggle the Legend curve label prefix On/Off The following strings and values control formatting of values for graphs Preference Type Description Valid arguments Default x_axis_type LOGARITHMIC, LINEAR LINEAR Linear or Logarithmic X Axis type X-Axis Grid 0.0 x_grid_spacing_off Spacing value X-Axis Grid 0.0 x_grid_spacing_int Interval value AUTOMATIC, LOCKED AUTOMATIC x_grid_spacing_auto X-Axis Grid Spacing Linear or LOGARITHMIC, LINEAR LINEAR y_axis_type Logarithmic X Axis type 0.0 y_grid_spacing_off Y-Axis Grid Spacing value 0.0 Y-Axis Grid y_grid_spacing_int Interval value Y-Axis Grid AUTOMATIC, LOCKED AUTOMATIC y_grid_spacing_auto Spacing Linear or LINEAR y2_axis_type LOGARITHMIC, LINEAR Logarithmic X Axis type y2_align_zero TRUE, FALSE FALSE Y2-Axis align with Y=0 add_exponent_to_label TRUE, FALSE TRUE Add axis multiplier to label Number of x_axis_decimal_places Default(3) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Default(3) decimal places displayed for X axis values x_axis_format Format used Automatic, General, Scientific, Default(Automatic) Default(Automatic) to display X axis values Page H.9

328 User manual Version 15.0, May 2018 T/HIS y_axis_decimal_places Number of 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Default(3) Default(3) decimal places displayed for Y axis values Default(Automatic) Format used y_axis_format Automatic, General, Scientific, Default(Automatic) to display Y axis values Number of y2_axis_decimal_places Default(3) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Default(3) decimal places displayed for second Y axis values y2_axis_format Format used Automatic, General, Scientific, Default(Automatic) Default(Automatic) to display second Y axis values colours background_colour WHITE, BLACK, RED, GREEN, BLUE, CYAN, Background BLACK colour MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 foreground_colour WHITE, BLACK, RED, GREEN, BLUE, CYAN, WHITE Foreground colour MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 User defined user_colour1 colour 1 (HEX RRGGBB value) user_colour2 User defined colour 2 (HEX RRGGBB value) User defined user_colour3 colour 3 (HEX RRGGBB value) Page H.10

329 User manual Version 15.0, May 2018 T/HIS user_colour4 User defined colour 4 (HEX RRGGBB value) user_colour5 User defined colour 5 (HEX RRGGBB value) User defined user_colour6 colour 6 (HEX RRGGBB value) a s o u r c e s for various entities The following options control the preferred order of d a t Default Type Preference Description Valid arguments use_elout TRUE, FALSE Use ELOUT in preference to ELOUTDET for Shell and ThickShell FALSE data components from LSDA file global LSDA, ASCII, Data source for global data THF, none LSDA, ASCII, Data source for part data part THF, none node Data source for node data THF, LSDA, ASCII, none elements THF, LSDA, none solid Data source for solid data THF, LSDA, none beam Data source for beam data shell Data source for shell data THF, LSDA, none Data source for thick shell data tshell THF, LSDA, none LSDA, ASCII, spring Data source for spring data XTF, none LSDA, ASCII, seatbelt Data source for seatbelt data XTF, none Data source for retractor data retractor LSDA, ASCII, XTF, none Data source for slipring data slipring LSDA, ASCII, XTF, none LSDA, ASCII, wall Data source for rigid wall data XTF, none Data source for contact data LSDA, ASCII, contact XTF, none reaction Data source for nodal reaction data LSDA, ASCII, XTF, none Data source for airbag data airbag LSDA, ASCII, XTF, none LSDA, ASCII, none joint Data source for joint data section Data source for section data LSDA, ASCII, none LSDA, ASCII, none Data source for subsystems data subsystem LSDA, ASCII, none geo_contact Data source for geometric contact data LSDA, ASCII, none Data source for nodal rigid body data nodal_rb LSDA, ASCII, none Data source for spotweld data weld spc Data source for spc data LSDA, ASCII, none boundary Data source for boundary data LSDA, ASCII, none Data source for fluid structural interaction data LSDA, ASCII, none fsi Data source for SPH data LSDA, ASCII, none sph Data source for TRACER data tracer LSDA, ASCII, none LSDA, ASCII, none Data source for PULLEY data pulley prtube Data source for PRTUBE data LSDA, ASCII, none LSDA, ASCII, none pblast Data source for Particle Blast data Data source for BEARING data LSDA, ASCII, none bearing The following strings and values control a s , t i t l e , a n d l e g e n d f o r m a t t i n g for graphs x e Page H.11

330 T/HIS User manual Version 15.0, May 2018 Preference Description Type Valid arguments Default Default 8, 10, 12, 14, 18, 24, Default title_size Font size for title title_font Font for title Helvetica_Medium, Helvetica_Bold, Courier_Medium, Default Courier_Bold, Times_Medium, Times_bold, Default FOREGROUND, WHITE, BLACK, RED, GREEN, BLUE, FOREGROUND title_colour Colour of title CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 8, 10, 12, 14, 18, 24, Default Default x_label_size Font size for X axis label Font for X Helvetica_Medium, Helvetica_Bold, Courier_Medium, Default x_label_font Courier_Bold, Times_Medium, Times_bold, Default axis label FOREGROUND FOREGROUND, WHITE, BLACK, RED, GREEN, BLUE, Colour of X x_label_colour CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, axis label INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 x_axis_size Font size for Default 8, 10, 12, 14, 18, 24, Default X axis units Font for X Helvetica_Medium, Helvetica_Bold, Courier_Medium, Default x_axis_font axis units Courier_Bold, Times_Medium, Times_bold, Default FOREGROUND, WHITE, BLACK, RED, GREEN, BLUE, Colour of X x_axis_colour FOREGROUND axis units CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 Font size for 8, 10, 12, 14, 18, 24, Default y_label_size Default Y axis label Font for Y Helvetica_Medium, Helvetica_Bold, Courier_Medium, Default y_label_font axis label Courier_Bold, Times_Medium, Times_bold, Default Page H.12

331 User manual Version 15.0, May 2018 T/HIS y_label_colour FOREGROUND, WHITE, BLACK, RED, GREEN, BLUE, Colour of Y FOREGROUND CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, axis label INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 y_axis_size 8, 10, 12, 14, 18, 24, Default Default Font size for Y axis units y_axis_font Helvetica_Medium, Helvetica_Bold, Courier_Medium, Font for Y Default axis units Courier_Bold, Times_Medium, Times_bold, Default y_axis_colour FOREGROUND, WHITE, BLACK, RED, GREEN, BLUE, Colour of Y FOREGROUND axis units CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 Font size for y2_label_size 8, 10, 12, 14, 18, 24, Default Default second Y axis label y2_label_font Helvetica_Medium, Helvetica_Bold, Courier_Medium, Default Font for second Y Courier_Bold, Times_Medium, Times_bold, Default axis label FOREGROUND y2_label_colour FOREGROUND, WHITE, BLACK, RED, GREEN, BLUE, Colour of CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, second Y axis label INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 y2_axis_size 8, 10, 12, 14, 18, 24, Default Default Font size for second Y axis units Font for y2_axis_font Helvetica_Medium, Helvetica_Bold, Courier_Medium, Default Courier_Bold, Times_Medium, Times_bold, Default second Y axis units Page H.13

332 T/HIS User manual Version 15.0, May 2018 y2_axis_colour FOREGROUND, WHITE, BLACK, RED, GREEN, BLUE, Colour of FOREGROUND second Y CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, axis units INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 legend_size 8, 10, 12, 14, 18, 24, Default Font size for Default curve legends Font for Helvetica_Medium, Helvetica_Bold, Courier_Medium, Default legend_font second curve Courier_Bold, Times_Medium, Times_bold, Default legends legend_colour FOREGROUND, WHITE, BLACK, RED, GREEN, BLUE, Colour of FOREGROUND curve CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, legends INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 legend_display_lines ON, OFF ON Turn User Lines On/Off The following strings and values control how T/HIS starts Preference Type Description Valid arguments Default Graphics format to start graphics_type OPENGL, TTY, DEFAULT OPENGL T/HIS with TRUE, FALSE FALSE Maximise window when maximise T/HIS started Default image format PNG_24 image_format BMP_8_C, BMP_8_UN, PNG_8, GIF_8, BMP_24_UN, PNG_24, JPG_24, PPM_24 AUTO_DETECT intel_hd_use_shaders AUTO_DETECT, FORCE_OFF, Control usage of hardware shaders on Intel FORCE_ON HD graphics cards placement Location for initial LEFT, RIGHT, BOTTOM, TOP, window on multi-screen LEFT_BOTTOM, LEFT_TOP, RIGHT_BOTTOM, RIGHT_TOP display Number of columns of 4 - 50 rhs_number_columns 4 Tools buttons TRUE, FALSE FALSE Write images with white white_background_image background ON, OFF bg_img_on Turn the Background Image on or off. Valid Background Image bg_img_path file path WIDTH, HEIGHT, W+H Preset Background Image bg_img_scale scaling Scale factor for bg_img_fact 1 Background Image Size Page H.14

333 User manual Version 15.0, May 2018 T/HIS bg_img_just N, NE, E, SE, S, SW, W, NW Background Image Justification Background Image SINGLE bg_img_pos TILED, SINGLE Positioning TILE_WIDE TILE_WIDE, TILE_TALL, CASCADE, window_layout Multiple window layout type 1X1, 2X2, 3X3, XY 1 Number used for ’X x Y’ x_layout 1 - 8 layout, number of cols 1 - 8 Number used for ’X x Y’ y_layout 1 layout, number of rows Width of the page page_width (pixels) Height of the page page_height (pixels) The following strings and values control laser plotting setup Preference Default Type Description Valid arguments Default paper size A4 laser_paper_size A4, A3, US Portrait, Landscape laser_orientation Landscape Default page orientation laser_top_margin 10 Top margin size in mm laser_bottom_margin Bottom margin size in mm 30 20 laser_left_margin Left margin size in mm 10 laser_right_margin Right margin size in mm The following options affect the appearance and behaviour of the graphical user interface, left handed support, and the mouse Type Valid arguments Default Preference Description Factor on display 0.5 - 2.0 display_factor 1.2 size (0.5 - 2.0, automatic if undefined) 0.0 - 1.0 display_brightness 1.0 Menu brightness (0.0-1.0) 0.0 - 1.0 display_saturation Menu colour 1.0 saturation (0.0-1.0) 0.0 - 1.0 0.0 Button shade button_gradation gradation (0.0-1.0) Dyn view method(s) ICON, ICON+CAPS, ICON+NUM, ICON+CAPS dv_sync_windows ICON+CAPS+NUM for synchronising windows Dyn view action for ROTATION_XYZ, ROTATION_XY, ROTATION_XYZ dv_left_shift ROTATION_Z, ROTATION_SPHERE, shift + Left mouse TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED TRANSLATION ROTATION_XYZ, ROTATION_XY, Dyn view action for dv_middle_shift shift + Middle ROTATION_Z, ROTATION_SPHERE, TRANSLATION, ZOOM_UP_+VE, mouse ZOOM_DOWN_+VE, UNUSED ZOOM_UP_+VE ROTATION_XYZ, ROTATION_XY, Dyn view action for dv_right_shift shift + Right mouse ROTATION_Z, ROTATION_SPHERE, TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED dv_left_ctrl ROTATION_XYZ, ROTATION_XY, Dyn view action for ROTATION_XYZ ROTATION_Z, ROTATION_SPHERE, ctrl + Left mouse TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED Dyn view action for dv_middle_ctrl ROTATION_XYZ, ROTATION_XY, TRANSLATION ctrl + Middle mouse ROTATION_Z, ROTATION_SPHERE, TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED dv_right_ctrl Dyn view action for ROTATION_XYZ, ROTATION_XY, ZOOM_UP_+VE ctrl + Right mouse ROTATION_Z, ROTATION_SPHERE, TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED Page H.15

334 T/HIS User manual Version 15.0, May 2018 dv_left_both ROTATION_XYZ, ROTATION_XY, Dyn view action for ROTATION_XYZ ROTATION_Z, ROTATION_SPHERE, shift+ctrl + Left TRANSLATION, ZOOM_UP_+VE, mouse ZOOM_DOWN_+VE, UNUSED Dyn view action for TRANSLATION ROTATION_XYZ, ROTATION_XY, dv_middle_both shift+ctrl + Middle ROTATION_Z, ROTATION_SPHERE, mouse TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED ROTATION_XYZ, ROTATION_XY, dv_right_both ZOOM_UP_+VE Dyn view action for shift+ctrl + Right ROTATION_Z, ROTATION_SPHERE, TRANSLATION, ZOOM_UP_+VE, mouse ZOOM_DOWN_+VE, UNUSED Dynamic viewing dv_shift_action CURRENT, WIREFRAME, CURRENT FREE_EDGE, UNUSED mode for shift + mouse button Dynamic viewing CURRENT, WIREFRAME, dv_ctrl_action WIREFRAME FREE_EDGE, UNUSED mode for ctrl + mouse button dv_both_action CURRENT, WIREFRAME, Dynamic viewing FREE_EDGE mode for shift+ctrl FREE_EDGE, UNUSED + mouse button font_scaling whether text in GUI TRUE TRUE, FALSE buttons can be scaled down to fit font_silent whether to write TRUE, FALSE FALSE explanatory text if wanted fonts are not found Menu font size SMALL, DEFAULT, LARGE DEFAULT font_size Menu font typeface HELVETICA font_type HELVETICA, HELVETICA-BOLD, and strength TIMES, TIMES-BOLD, COURIER, COURIER-BOLD Left handed NONE, MOUSE, KEYBOARD, ALL NONE left_handed switching of mouse and/or keyboard zoom_factor 0.01 - 1.0 Zoom Factor for 0.05 mouse wheel (0.01-1.0) czoom_factor Factor for right 0.01 - 0.2 0.05 mouse dynamic zoom (0.01-0.2) Factor for +/- 0.01 - 100.0 kzoom_factor 2.0 keyboard short-cut keys menu_dragging_mode Mode used when WIREFRAME, OPAQUE WIREFRAME moving menu panels with the mouse mouse_action_middle_button Set the action for APPLY, REJECT, DESELECT REJECT the middle mouse key during picking Set the action for mouse_action_right_button APPLY, REJECT, DESELECT REJECT the right mouse key during picking The following control settings related to quickfind Preference Type Description Valid arguments Default Page H.16

335 User manual Version 15.0, May 2018 T/HIS quickfind_unmatched_text_colour Text colour WHITE, BLACK, RED, GREEN, BLUE, CYAN, BLACK for MAGENTA, YELLOW, ORANGE, TURQUOISE, INDIGO, LIME, SKY, PINK, PALE_YELLOW, unmatched characters GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 BLUE WHITE, BLACK, RED, GREEN, BLUE, CYAN, Text colour quickfind_matched_text_colour MAGENTA, YELLOW, ORANGE, TURQUOISE, for matched INDIGO, LIME, SKY, PINK, PALE_YELLOW, characters GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 Number of 1 - 20 10 quickfind_found_list_length items to display in the found list 0 - 2147483646 10 Number of quickfind_recent_history recently selected items to store e c t i o n 5 . 2 3 for further details. The following options define how Javascripts are processed by THIS. See s Description Type Default Preference Valid arguments Directory for T/HIS to look for modules_directory modules in Directory in which T/HIS looks $OA_INSTALL/this_library/scripts script_directory for scripts javascript_memory_size 25 Maximum memory allocated for garbage collection Keys can have functions assigned to them: Type Description Valid Default Preference arguments Shortcut for F1 F1_key F2_key Shortcut for F2 Shortcut for F3 F3_key Shortcut for F4 F4_key Shortcut for F5 F5_key Shortcut for F6 F6_key Page H.17

336 T/HIS User manual Version 15.0, May 2018 F7_key Shortcut for F7 Shortcut for F8 F8_key Shortcut for F9 F9_key F10_key Shortcut for F10 F11_key Shortcut for F11 Shortcut for F12 F12_key AUTOSCALE Shortcut for A A_key B_key Shortcut for B BLANK C_key CURVE_MENU Shortcut for C Shortcut for D D_key DATUM_MENU Shortcut for E E_key FAST_TCF_MENU Shortcut for F F_key G_key NEW_WINDOW Shortcut for G Shortcut for H H_key Shortcut for I I_key Shortcut for J JAVASCRIPT_MENU J_key Shortcut for K K_key Shortcut for L L_key Shortcut for M M_key N_key Shortcut for N EDIT_NEXT O_key Shortcut for O P_key PLOT Shortcut for P Shortcut for Q Q_key QUICK_PICK REVERSE Shortcut for R R_key Shortcut for S S_key Shortcut for T TIDY_MENUS T_key U_key Shortcut for U UNBLANK CURVE_GROUP Shortcut for V V_key Shortcut for W W_key X_key CURVE_TABLE Shortcut for X Shortcut for Y Y_AUTOSCALE Y_key Z_key Shortcut for Z ZOOM Page H.18

337 User manual Version 15.0, May 2018 T/HIS AUTOSCALE a_key Shortcut for a Shortcut for b BLANK b_key CURVE_MENU Shortcut for c c_key DATUM_MENU d_key Shortcut for d e_key Shortcut for e FAST_TCF_MENU Shortcut for f f_key NEW_WINDOW Shortcut for g g_key h_key Shortcut for h i_key Shortcut for i Shortcut for j j_key JAVASCRIPT_MENU Shortcut for k k_key Shortcut for l l_key m_key Shortcut for m EDIT_NEXT Shortcut for n n_key Shortcut for o o_key Shortcut for p PLOT p_key Shortcut for q QUICK_PICK q_key Shortcut for r r_key REVERSE Shortcut for s s_key t_key Shortcut for t TIDY_MENUS UNBLANK u_key Shortcut for u v_key CURVE_GROUP Shortcut for v Shortcut for w w_key CURVE_TABLE Shortcut for x x_key Shortcut for y Y_AUTOSCALE y_key Shortcut for z ZOOM z_key SPACE_key Shortcut for space PLOT COPY_AXIS Shortcut for 0 ZERO_key Shortcut for 1 TILE_TALL ONE_key TWO_key TILE_WIDE Shortcut for 2 Shortcut for 3 CASCADE THREE_key FOUR_key Shortcut for 4 LAYOUT_1X1 Page H.19

338 T/HIS User manual Version 15.0, May 2018 LAYOUT_2X2 FIVE_key Shortcut for 5 Shortcut for 6 LAYOUT_3X3 SIX_key Shortcut for 7 SEVEN_key EIGHT_key Shortcut for 8 NINE_key Shortcut for 9 Shortcut for ! EXCLAMATION_key Shortcut for " DOUBLEQUOTE_key HASH_key Shortcut for # DOLLAR_key Shortcut for $ Shortcut for % PERCENT_key Shortcut for & AMPERSAND_key Shortcut for ’ SINGLEQUOTE_key LEFTBRACKET_key Shortcut for ( Shortcut for ) RIGHTBRACKET_key Shortcut for * ASTERISK_key Shortcut for + ZOOM_IN PLUS_key Shortcut for , COMMA_key Shortcut for - MINUS_key ZOOM_OUT Shortcut for . DOT_key SLASH_key Shortcut for / SHORTCUT COLON_key Shortcut for : SEMICOLON_key Shortcut for ; Shortcut for < LESSTHAN_key ZOOM_IN Shortcut for = EQUALS_key Shortcut for > GREATERTHAN_key Shortcut for ? SHORTCUT QUESTIONMARK_key AT_key Shortcut for @ Shortcut for [ LEFTSQUAREBRACKET_key Shortcut for \ BACKSLASH_key RIGHTSQUAREBRACKET_key Shortcut for ] Shortcut for ^ CIRCUMFLEX_key UNDERSCORE_key Shortcut for _ ZOOM_OUT Page H.20

339 User manual Version 15.0, May 2018 T/HIS BACKTICK_key Shortcut for ‘ Shortcut for { LEFTCURLYBRACKET_key Shortcut for | PIPE_key RIGHTCURLYBRACKET_key Shortcut for } TILDE_key Shortcut for ~ The following strings control the T/HIS header and version number at the bottom right of the plot space Preference Type Description Valid arguments Default user_text_line_1 Text for line 1 Text for line user_text_line_2 2 user_text_line_3 Text for line 3 user_text_line_4 Text for line 4 Text for line user_text_line_5 5 Text for line user_text_line_6 6 user_text_size_1 8, 10, 12, 14, 18, 24, Default Default Size of text on line 1 Size of text 8, 10, 12, 14, 18, 24, Default Default user_text_size_2 on line 2 Size of text user_text_size_3 8, 10, 12, 14, 18, 24, Default Default on line 3 Default Size of text user_text_size_4 8, 10, 12, 14, 18, 24, Default on line 4 Default Size of text 8, 10, 12, 14, 18, 24, Default user_text_size_5 on line 5 8, 10, 12, 14, 18, 24, Default Default Size of text user_text_size_6 on line 6 user_text_font Helvetica_Medium, Helvetica_Bold, Courier_Medium, Default Font for user text Courier_Bold, Times_Medium, Times_bold, Default FOREGROUND, WHITE, BLACK, RED, GREEN, BLUE, FOREGROUND user_text_colour Colour for CYAN, MAGENTA, YELLOW, ORANGE, TURQUOISE, user text INDIGO, LIME, SKY, PINK, PALE_YELLOW, GOLD, OLIVE, DARK_MAGENTA, MEDIUM_GREEN, MEDIUM_BLUE, HOT_PINK, LIGHT_PINK, SEA_GREEN, MAROON, DARK_GREEN, PURPLE, NAVY, DARK_GREY, MEDIUM_GREY, LIGHT_GREY, USER_1, USER_2, USER_3, USER_4, USER_5, USER_6, COL_1, COL_2, COL_3, COL_4, COL_5, COL_6, COL_7, COL_8, COL_9, COL_10, COL_11, COL_12, COL_13, COL14, COL_15, COL_16, COL_17, COL_18, COL_19, COL_20, COL_21, COL_22, COL_23, COL_24, COL_25, COL_26, COL_27, COL_28, COL_29, COL_30, COL_31, COL_32, COL_33, COL_34, COL_35, COL_36 The following control treatment of unicode Preference Description Valid arguments Default Type Font to use cjk_unix_font -misc-fixed-medium-r-normal-*-12-*-*-*-*-*-*-* for CJK text on unix machines Font to use cjk_windows_font MS Gothic 12 for CJK text on windows machines Page H.21

340 T/HIS User manual Version 15.0, May 2018 file_encoding Character Latin-1, BIG5, Latin-1 encoding EUC-CN, EUC-JP, EUC-KR, GB, GBK, for script files ISO-2022-CN, ISO-2022-CN-EXT, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-KR, JOHAB, Shift-JIS, UTF-8, UTF-16BE, UTF-16LE, UTF-16, UTF-32BE, UTF-32LE, UTF-32 The following strings and values control the display of UNIT information in T/HIS Default Type Description Preference Valid arguments U1 m:kg:s (SI), U2 mm:T:s, U3 mm:kg:ms, U4 Sets the default UNIT system for U1 m:kg:s model_units models mm:gm:ms, U5 ft:slug:s, U6 m:T:s (SI) display_units U1 m:kg:s Sets the default UNIT system U1 m:kg:s (SI), U2 mm:T:s, U3 mm:kg:ms, U4 mm:gm:ms, U5 ft:slug:s, U6 m:T:s used to display results (SI) TRUE Write UNIT information to CSV write_csv_units TRUE, FALSE files The following is an example file. Note that blank lines and lines not beginning : are ignored, so comment lines may be added if required. However, lines to be read must start at column 1 and there must not be any gaps in the keyword. this*laser_paper_size: A4 this*laser_orientation: Landscape this*laser_mode: Greyscale this*user_text_line_2: Design Project this*user_text_line_4: Phase II Results file is read and applied. The user preferences option is not available in command line mode, however the oa_pref Setting paper size and margins can therefore only be done through this method. Global preferences. From version 9.3 onwards global preferences that apply to all programs can be specified using "oasys" as the program name. oasys*: file_names LSTC = d3*, OASYS = job.ptf* Location of HTML browser html_application Location of HTML browser for html_application_linux linux (use if the same oa_pref file is used for windows and linux) Location of HTML browser for html_application_windows windows (use if the same oa_pref file is used for windows and linux) Default image format BMP_8_C, BMP_8_UN, image_format JPG_24 PNG_8, GIF_8, BMP_24_UN, PNG_24, JPG_24, PPM_24 Page H.22

341 User manual Version 15.0, May 2018 T/HIS intel_hd_use_shaders AUTO_DETECT, Control usage of hardware AUTO_DETECT shaders on Intel HD graphics FORCE_OFF, FORCE_ON cards locale Language and country locale to use (overrides system one) TRUE, FALSE maximise FALSE Maximise window when Program is started Location of PDF browser pdf_application Location of PDF browser for pdf_application_linux linux (use if the same oa_pref file is used for windows and linux) Location of PDF browser for pdf_application_windows windows (use if the same oa_pref file is used for windows and linux) placement Location for initial window on LEFT, RIGHT, BOTTOM, multi-screen display TOP, LEFT_BOTTOM, LEFT_TOP, RIGHT_BOTTOM, RIGHT_TOP Directory to start Program in start_in temp_file_expiry 31 Age in days after which a 0 - 10000 temporary filename can be reused, 0 = never show_license_warning TRUE, FALSE TRUE Display Window containing License System messages ADMIN/INSTALL pref which TRUE, FALSE TRUE post_uses_primer allows D3Plot, T/his to take an available Primer license Save position of undocked TRUE TRUE, FALSE save_window_positions windows between sessions The following control directories Valid Preference Type Description Default arguments "home" directory for user home_dir Directory Oasys Ltd software is installed in install_dir manuals_dir Directory user manuals are installed in temporary directory for user temp_dir Directory for checkpoint files, or "none" to suppress them altogether checkpoint_dir The following control laser options Description Default Type Valid arguments Preference US, A4 A4 laser_paper_size Default paper size Default page orientation Portrait, Landscape Landscape laser_orientation Top margin size in mm laser_top_margin 10 30 laser_bottom_margin Bottom margin size in mm 20 laser_left_margin Left margin size in mm 10 Right margin size in mm laser_right_margin The following control menu and mouse attributes Description Valid arguments Default Preference Type Factor on display 0.5 - 2.0 1.2 display_factor size (0.5 - 2.0, automatic if undefined) Page H.23

342 T/HIS User manual Version 15.0, May 2018 display_brightness 0.0 - 1.0 1.0 Menu brightness (0.0-1.0) Menu colour 1.0 display_saturation 0.0 - 1.0 saturation (0.0-1.0) 0.0 - 1.0 Button shade 0.0 button_gradation gradation (0.0-1.0) ICON, ICON+CAPS, ICON+NUM, dv_sync_windows ICON+CAPS Dyn view method(s) for synchronising ICON+CAPS+NUM windows ROTATION_XYZ, ROTATION_XY, Dyn view action for dv_left_shift ROTATION_XYZ ROTATION_Z, ROTATION_SPHERE, shift + Left mouse TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED ROTATION_XYZ, ROTATION_XY, Dyn view action for dv_middle_shift TRANSLATION shift + Middle ROTATION_Z, ROTATION_SPHERE, mouse TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED Dyn view action for ROTATION_XYZ, ROTATION_XY, dv_right_shift ZOOM_UP_+VE ROTATION_Z, ROTATION_SPHERE, shift + Right mouse TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED ROTATION_XYZ, ROTATION_XY, ROTATION_XYZ Dyn view action for dv_left_ctrl ROTATION_Z, ROTATION_SPHERE, ctrl + Left mouse TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED dv_middle_ctrl ROTATION_XYZ, ROTATION_XY, Dyn view action for TRANSLATION ROTATION_Z, ROTATION_SPHERE, ctrl + Middle mouse TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED ROTATION_XYZ, ROTATION_XY, dv_right_ctrl ZOOM_UP_+VE Dyn view action for ctrl + Right mouse ROTATION_Z, ROTATION_SPHERE, TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED Dyn view action for ROTATION_XYZ, ROTATION_XY, dv_left_both ROTATION_XYZ shift+ctrl + Left ROTATION_Z, ROTATION_SPHERE, TRANSLATION, ZOOM_UP_+VE, mouse ZOOM_DOWN_+VE, UNUSED Dyn view action for ROTATION_XYZ, ROTATION_XY, dv_middle_both TRANSLATION ROTATION_Z, ROTATION_SPHERE, shift+ctrl + Middle mouse TRANSLATION, ZOOM_UP_+VE, ZOOM_DOWN_+VE, UNUSED Dyn view action for ROTATION_XYZ, ROTATION_XY, dv_right_both ZOOM_UP_+VE shift+ctrl + Right ROTATION_Z, ROTATION_SPHERE, TRANSLATION, ZOOM_UP_+VE, mouse ZOOM_DOWN_+VE, UNUSED dv_shift_action CURRENT, WIREFRAME, Dynamic viewing CURRENT mode for shift + FREE_EDGE, UNUSED mouse button dv_ctrl_action Dynamic viewing CURRENT, WIREFRAME, WIREFRAME FREE_EDGE, UNUSED mode for ctrl + mouse button Dynamic viewing CURRENT, WIREFRAME, FREE_EDGE dv_both_action mode for shift+ctrl FREE_EDGE, UNUSED + mouse button font_scaling TRUE, FALSE TRUE whether text in GUI buttons can be scaled down to fit whether to write TRUE, FALSE FALSE font_silent explanatory text if wanted fonts are not found Menu font size SMALL, DEFAULT, LARGE DEFAULT font_size Menu font typeface HELVETICA, HELVETICA-BOLD, HELVETICA font_type TIMES, TIMES-BOLD, COURIER, and strength COURIER-BOLD Left handed left_handed NONE, MOUSE, KEYBOARD, ALL NONE switching of mouse and/or keyboard Page H.24

343 User manual Version 15.0, May 2018 T/HIS zoom_factor 0.01 - 1.0 0.05 Zoom Factor for mouse wheel (0.01-1.0) 0.01 - 0.2 0.05 Factor for right czoom_factor mouse dynamic zoom (0.01-0.2) Factor for +/- 0.01 - 100.0 2.0 kzoom_factor keyboard short-cut keys menu_dragging_mode Mode used when WIREFRAME WIREFRAME, OPAQUE moving menu panels with the mouse Factor applied to the mouse_3d_rotation_factor 1.0 speed of rotation when using a 3D mouse Factor applied to the mouse_3d_pan_factor 1.0 speed of panning when using a 3D mouse 1.0 Factor applied to the mouse_3d_zoom_factor speed of zooming when using a 3D mouse REJECT mouse_action_middle_button APPLY, REJECT, DESELECT Set the action for the middle mouse key during picking Set the action for APPLY, REJECT, DESELECT REJECT mouse_action_right_button the right mouse key during picking The following control treatment of recent files popups Description Valid Preference Default Type arguments ON recent_files_dropdown Turn the recent files popup on or off OFF, ON 1 - 50 recent_files_max_but 10 Maximum number of buttons displayed in a recent files popup 1 - 512 recent_files_max_char Maximum number of characters displayed on each recent files 50 button The following control treatment of unicode Preference Default Type Description Valid arguments Font to use -misc-fixed-medium-r-normal-*-12-*-*-*-*-*-*-* cjk_unix_font for CJK text on unix machines Font to use cjk_windows_font MS Gothic 12 for CJK text on windows machines Latin-1 Character file_encoding Latin-1, BIG5, encoding EUC-CN, EUC-JP, EUC-KR, GB, GBK, for script ISO-2022-CN, files ISO-2022-CN-EXT, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-KR, JOHAB, Shift-JIS, UTF-8, UTF-16BE, UTF-16LE, UTF-16, UTF-32BE, UTF-32LE, UTF-32 Page H.25

344 T/HIS User manual Version 15.0, May 2018 Page H.26

345 User manual Version 15.0, May 2018 T/HIS APPENDIX I - Windows File Associations I.1 WINDOWS (PC’s) , .thf .xtf Under Windows on PC it is possible to set up file associations so that double clicking on files with the , extension opens them automatically in T/HIS. .bdf and .cur All of these settings are optional: you should be aware that under the Windows operating system associating a filetype (via its extension) with an application is convenient, but can also be restricting and hard to undo. I.1.1 To make .thf files open in T/HIS by double-clicking on them If no application is currently associated with .thf files, a "double-click" won’t work, and some non-specific, usually "windows", icon will be displayed with the file. .thf file, and select properties and then press the Change... tab next to Opens with: from the Right click on any popup menu. "Open with" panel. 1. This will bring up the Always use... box is ticked 2. Ensure the 3. Use the directory browsing window to find the correct T/HIS executable. You are looking for file this11.exe or this11_x64.exe . OK to close the "Open With" window. 4. Select the executable and click on T/HIS should now open and read in the selected file and you should now find that: Page I.1

346 T/HIS User manual Version 15.0, May 2018 files on your system show the T/HIS icon. • All .thf • Double-clicking on any such file starts T/HIS and opens that file. It is not possible to set up the filename "d3thdt" for double-clicking in this way since Windows requires filename extensions when assigning applications to files.) .cur and .bdf I.1.2 To make .xtf , files open in T/HIS by double-clicking on them .thf files, and must be carried out for each of the file types that you wish to The procedure is exactly the same as for process by double-clicking: .xtf LS-DYNA Extra Time History file .cur T/HIS Curve file .bdf T/HIS Bulk Data file .thf and .xtf are opened in this way, but no contents are read in. Note that: File types and .bdf are opened and their complete contents read in. .cur File types Page I.2

347 User manual Version 15.0, May 2018 T/HIS APPENDIX J - T-HIS JavaScript API Description of T/HIS API functions and methods. The following pages describe the functions ("methods") available in the T/HIS Javascript interface. For information t i o n 5 . 2 3 . about how to run Javascript files see e S c global class r . . M The global class is the main JavaScript class. e o . Class functions a a l e F l c g () l A • o t a r F l a g (flag [ F l a g ] ) • C l e l a g u e I n p u t (string_1, (string_2 ... string_n) [One or more Javascript strings] ) • D i o o l g a e I n p u t N o E c h o (string_1, (string_2 ... string_n) [One or more Javascript strings] ) i D • u • a b l e U p d a t e () D i s n b l e U p d a t e () • E a r o M e s s a g e (string [Any valid javascript type] ) E r • r [object] c t e (data u ) e x • E i t () • E x t F t c f V a r (name [string] ) • G e t v n e (name [string] ) • G e (string e a g e s [Any valid javascript type] ) M • s i l l i S l e e p (time [integer] ) • M u N e r T o S t r i n g (number [integer/float] , width [integer] ) • m b o P • t l () n (string [Any valid javascript type] ) i t r P • n • l n (string [Any valid javascript type] ) P r i t t u r n F l a g • [ F l a g ] ) R e (flag e F t c f V a r (name [string] ) t • S e e p (time [integer] ) l S • y s t e m (string [Any valid javascript type] ) • S n U () • i x ) r i n g M e s s a g a (string [Any valid javascript type] n • W e i d o w s n • W () Detailed Description The global class declares the global object in JavaScript that contains the global properties and methods. As well as the e s s a g e ( ) , P r i n t ( ) etc. See the documentation core JavaScript methods, PRIMER also defines other additional ones. e.g. M below for more details. Details of functions AllocateFlag() [static] Description e t u r n F l a g ( ) and Once allocated the flag is automatically cleared for all Allocate a flag for use in the script. See also R entity types and all the curves currently in T/HIS. Arguments No arguments Return type Flag (integer) Example To allocate a flag var flag = AllocateFlag(); Page J.1

348 T/HIS User manual Version 15.0, May 2018 l a g ] ) [static] ClearFlag(flag [ F Description Clears a flag on all curves and entity types. Arguments Name Description Type a g The flag to return. flag F l Return type No return value. Example To clear flag f: ClearFlag(f); ) [static] [One or more Javascript strings] DialogueInput(string_1, (string_2 ... string_n) Description Execute one or more lines of command line dialogue input. Arguments Name Type Description One or more Javascript string_1, (string_2 ... The command(s) that are to be executed as if they had been typed into the dialogue box strings string_n) Return type No return value Example To mulitple curves 1 and 2 by 10: DialogueInputNoEcho("/op mul #1 10 #", "/op mul #2 10 #"); Note that each call to DialogueInput starts afresh at the top of the T/HIS command line "tree", so where multiple commands need to be given at sub-menu levels they need to be included in a single call. DialogueInputNoEcho(string_1, (string_2 ... string_n) [One or more Javascript strings] ) [static] Description . with no echo of commands to dialogue box Execute one or more lines of command line dialogue input Arguments Description Name Type One or more Javascript The command(s) that are to be executed as if they had been typed string_1, (string_2 ... into the dialogue box strings string_n) Return type No return value Page J.2

349 User manual Version 15.0, May 2018 T/HIS Example To mulitple curves 1 and 2 by 10: DialogueInputNoEcho("/op mul #1 10 #", "/op mul #2 10 #"); As with DialogueInput above each call starts at the top of the T/HIS command tree structure, so any commands destined for sub-menus must all be arguments to a single call. DisableUpdate() [static] Description Temporarily disable the plotting of curves within graphs. Arguments No arguments Return type No return value Example Temporarily disable the plotting of curves within graphs DisableUpdate(); EnableUpdate() [static] Description Re-enable the plotting of curves within graphs. Arguments No arguments Return type No return value Example Re-enable the plotting of curves within graphs EnableUpdate(); [Any valid javascript type] ErrorMessage(string ) [static] Description . adding a carriage return Print an error message to the dialogue box Arguments Type Description Name The string/item that you want to print string Any valid javascript type Return type No return value Example To print the title of model object m as an error to the dialogue box ErrorMessage("The title is " + m.title); Page J.3

350 T/HIS User manual Version 15.0, May 2018 Execute(data [object] ) [static] Description Execute a program or script outside PRIMER and get the standard output and error streams. Arguments Name Type Description Object containing the following properties; object data program (string): the program you want to run arguments (array): optional array of arguments to pass to program Return type object containing the following properties; stdout: the standard output from the program/script stderr: the standard error output from the program/script status: the exit code from the program/script Example To run script "example.bat" with arguments "foo" and "bar": var output = Execute( { program: ’example.bat’, arguments: [ ’foo’, ’bar’ ] } ); var text = output.stdout; var errors = output.stderr; var ecode = output.status; Exit() [static] Description Exit script Arguments No arguments Return type No return value Example Exit with Exit(); GetFtcfVar(name ) [static] [string] Description Get the value of a FAST-TCF variable Arguments Description Type Name name string The FAST-TCF variable name (case independent) Return type String containing variable value or null if variable does not exist Page J.4

351 User manual Version 15.0, May 2018 T/HIS Example To get the value for FAST-TCF variable Job var job_name = GetFtcfVar("Job"); ) [static] Getenv(name [string] Description Get the value of an environment variable Arguments Type Description Name string The environment variable name name Return type String containing variable value or null if variable does not exist Example To get the value for environment variable HOME var home = Getenv("HOME"); [Any valid javascript type] Message(string ) [static] Description . adding a carriage return Print a message to the dialogue box Arguments Name Type Description The string/item that you want to print. If ’\r’ is added to the end of the string then instead of string Any valid automatically adding a carriage return in the dialogue box, the next message will overwrite the javascript type current one. This may be useful for giving feedback to the dialogue box when doing an operation. Return type No return value Example To print the title of model object m as a message to the dialogue box Message("The title is " + m.title); [integer] ) [static] MilliSleep(time Description milliseconds. See also S l e e p ( ) Pause execution of the script for time Arguments Type Description Name time integer Number of milliseconds to pause for Return type No return value Page J.5

352 T/HIS User manual Version 15.0, May 2018 Example To pause for 500 milliseconds MilliSleep(500); ) [static] NumberToString(number , width [integer/float] [integer] Description Formats a number to a string with the specified width. Arguments Type Description Name number integer/float The number you want to format. The width of the string you want to format it to (must be less than 80). integer width Return type String containing the number Example To write the number 1.2345e+6 to a string 10 characters wide var str = NumberToString(1.2345e+6, 10); Plot() [static] Description Updates all the T/HIS graphs. Arguments No arguments Return type No return value Example Update all graphs Plot(); [Any valid javascript type] ) [static] Print(string Description . Note that a carriage return is not added Print a string to stdout. Arguments Description Type Name string Any valid javascript type The string/item that you want to print Return type No return value Page J.6

353 User manual Version 15.0, May 2018 T/HIS Example To print string "Hello, world!" Print("Hello, world!"); To print the title of model object m with a carriage return print("The title is " + m.title + "\n"); [Any valid javascript type] Println(string ) [static] Description Print a string to stdout . adding a carriage return Arguments Type Description Name The string/item that you want to print Any valid javascript type string Return type No return value Example To print string "Hello, world!" automatically adding a carriage return Println("Hello, world!"); To print the title of model object m, automatically adding a carriage return Println("The title is " + m.title); ] [ g F ) [static] l ReturnFlag(flag a Description l l o c a t e F l a g ( ) and Return a flag used in the script. See also A Arguments Type Name Description a The flag to return. flag F g l Return type No return value. Example To return flag f: ReturnFlag(f); ) [static] SetFtcfVar(name [string] Description Set the value of a FAST-TCF variable. If the variable already exists then it’s value is updated Arguments Name Type Description name string The FAST-TCF variable name (case independent) Page J.7

354 T/HIS User manual Version 15.0, May 2018 Return type String containing variable value or null if variable does not exist Example To create a new FAST-TCF variable called run_number with the value "10" var home = SetFtcfVar("run_number","10"); [integer] ) [static] Sleep(time Description M i l l i S l e e p ( Pause execution of the script for time seconds. See also ) Arguments Type Name Description Number of seconds to pause for time integer Return type No return value Example To pause for 2 seconds Sleep(2); ) [static] System(string [Any valid javascript type] Description x e c u t e ( ) Do a system command outside PRIMER. To run an external command and get the output then please use E instead. Arguments Name Type Description The system command that you want to do Any valid javascript type string Return type integer (probably zero if command successful but is implementation-dependant) Example To make the directory "example" System("mkdir example"); Unix() [static] Description i n d o w s ( ) Test whether script is running on a Unix/Linux operating system. See also W Arguments No arguments Return type true if Unix/Linux, false if not Page J.8

355 User manual Version 15.0, May 2018 T/HIS Example To test if the OS is Unix if ( Unix() ) [Any valid javascript type] ) [static] WarningMessage(string Description Print a warning message to the dialogue box adding a carriage return . Arguments Type Name Description The string/item that you want to print Any valid javascript type string Return type No return value Example To print the title of model object m as a warning to the dialogue box WarningMessage("The title is " + m.title); Windows() [static] Description i x U ) Test whether script is running on a Windows operating system. See also n ( Arguments No arguments Return type true if Windows, false if not Example To test if the OS is Windows if ( Windows() ) Page J.9

356 T/HIS User manual Version 15.0, May 2018 Colour class r The Colour class contains constants relating to colours. . . o e M . Colour constants Name Description Background colour Colour.BACKGROUND Colour black Colour.BLACK Colour blue Colour.BLUE Colour.CYAN Colour cyan Colour.DARK_GREEN Colour dark green Colour dark grey Colour.DARK_GREY Colour.DARK_MAGENTA Colour dark magenta Foreground colour Colour.FOREGROUND Colour.GOLD Colour gold Colour green Colour.GREEN Colour hot pink Colour.HOT_PINK Colour.INDIGO Colour indigo Colour light grey Colour.LIGHT_GREY Colour light pink Colour.LIGHT_PINK Colour lime Colour.LIME Colour.MAGENTA Colour magenta Colour maroon Colour.MAROON Colour.MEDIUM_BLUE Colour medium blue Colour.MEDIUM_GREEN Colour medium green Colour medium grey Colour.MEDIUM_GREY Colour navy Colour.NAVY Colour.OLIVE Colour olive Colour orange Colour.ORANGE Colour.PALE_YELLOW Colourpale yellow Colour pink Colour.PINK Colour.PURPLE Colour purple Colour.RED Colour red Colour.SEA_GREEN Colour sea green Colour.SKY Colour sky Colour.TURQUOISE Colour turquoise Colour.USER_1 Colour user defined 1 Colour.USER_2 Colour user defined 2 Colour.USER_3 Colour user defined 3 Colour user defined 4 Colour.USER_4 Colour.USER_5 Colour user defined 5 Page J.10

357 T/HIS User manual Version 15.0, May 2018 Colour.USER_6 Colour user defined 6 Colour.WHITE Colour white Colour.YELLOW Colour yellow Detailed Description The Colour class is used to define colours: p.colour = Colour.RED; Page J.11

358 T/HIS User manual Version 15.0, May 2018 Component class ( t t a F l a g g e d a ) in T/HIS. e D G The following component constants can be used in Component constants Constants for MODEL Description Name Time step Component.GSTP Component.GKE Kinetic energy Internal energy Component.GIE Component.GSWE Stonewall energy Spring and damper energy Component.GSPE Hourglass energy Component.GHG Component.GSDE System damping energy Joint internal energy Component.GJE Sliding interface energy Component.GSIE External work Component.GEW Component.GRBE Rigid Body stopper energy Total energy Component.GTE Component.GTER Total/initial energy Component.GVX Average X velocity Average Y velocity Component.GVY Average Z velocity Component.GVZ Component.GTZC Time per zone cycle Component.GMASS Total mass Added mass Component.GMADD %age Mass increase Component.GPM Eroded Kinetic energy Component.GEKE Component.GEIE Eroded Internal energy Component.GEHG Eroded Hourglass energy Energy Ratio w/o Eroded Component.GER Component.DRCE Current Distortional KE Component.DRMX Maximum Distortional KE Convergence Factor Component.DRCO Total Kinetic energy Component.DRKE Constants for PART Name Description Kinetic energy Component.GKE Component.GIE Internal energy Page J.12

359 User manual Version 15.0, May 2018 T/HIS Component.GHG Hourglass energy Total energy Component.GTE X momentum Component.GMX Y momentum Component.GMY Component.GMZ Z momentum Component.GVX Average X velocity Component.GVY Average Y velocity Component.GVZ Average Z velocity Component.GMASS Mass Added mass Component.GAM Eroded Kinetic energy Component.GEKE Eroded Internal energy Component.GEIE Constants for NODE Name Description Component.TEMP Temperature X Displacement Component.DX Y Displacement Component.DY Z Displacement Component.DZ Component.DM Displacement Magnitude X Velocity Component.VX Component.VY Y Velocity Z Velocity Component.VZ Component.VM Velocity Magnitude Component.AX X Acceleration Y Acceleration Component.AY Z Acceleration Component.AZ Component.AM Acceleration Magnitude X co-ordinate Component.CX Y co-ordinate Component.CY Z co-ordinate Component.CZ Component.CV Current Vector Component.BX Basic X co-ordinate Component.BY Basic Y co-ordinate Component.BZ Basic Z co-ordinate Component.BV Basic Vector Component.RDX X rotation Y rotation Component.RDY Component.RDZ Z rotation Page J.13

360 T/HIS User manual Version 15.0, May 2018 Component.RDM Rotation Magnitude X rotational velocity Component.RVX Y rotational velocity Component.RVY Z rotational velocity Component.RVZ Component.RVM Rotation Vel Magnitude Component.RAX X rotational acceleration Component.RAY Y rotational acceleration Component.RAZ Z rotational acceleration Component.RAM Rotation Accel Magnitude X Thermal Flux Component.TFX Y Thermal Flux Component.TFY Z Thermal Flux Component.TFZ Thermal Flux Magnitude Component.TFM Component.TTOP Top Temperature Bottom Temperature Component.TBOT Constants for SOLID Name Description Stress in XX Component.SXX Stress in YY Component.SYY Stress in ZZ Component.SZZ Component.SXY Stress in XY Stress in YZ Component.SYZ Component.SZX Stress in ZX Component.SMAX MAX principal stress MIN principal stress Component.SMIN MAX shear stress Component.SMS Component.SVON von Mises stress Average stress (Pressure) Component.SAV Triaxiality Factor Component.STR Effective plastic strain Component.EPL Component.EXX Strain in XX Component.EYY Strain in YY Component.EZZ Strain in ZZ Component.EXY Strain in XY Component.EYZ Strain in YZ Component.EZX Strain in ZX MAX principal strain Component.EMAX Component.EMIN MIN principal strain Page J.14

361 User manual Version 15.0, May 2018 T/HIS Component.EMS MAX shear strain von Mises strain Component.EVON Average strain Component.EAV Plastic Strain Magnitude Component.PEMAG Component.SOX Extra data Constants for BEAM Description Name Component.BFX Axial force Component.BFY Shear force in Y Shear force in Z Component.BFZ Torsional moment Component.BMXX Moment in Y Component.BMYY Component.BMZZ Moment in Z Axial strain Component.BSAX Component.BPE1 Bending energy: end 1 Bending energy: end 2 Component.BPE2 Y rotation: end 1 Component.BRY1 Y rotation: end 2 Component.BRY2 Component.BRZ1 Z rotation: end 1 Z rotation: end 2 Component.BRZ2 Component.BRXX Torsional rotation Y Bending moment: end 1 Component.BMY1 Component.BMY2 Y Bending moment: end 2 Component.BMZ1 Z Bending moment: end 1 Z Bending moment: end 2 Component.BMZ2 Axial collapse energy Component.BACE Component.BIE Internal energy Axial stress Component.BSXX XY Shear stress Component.BSXY ZX Shear stress Component.BSZX Component.BEP Effective plastic strain Component.BEAX Axial strain Component.BDX Axial displacement Component.BDY Displacement in Y Component.BDZ Displacement in Z Component.BRY Rotation in Y Rotation in Z Component.BRZ Component.BEX Extra data Page J.15

362 T/HIS User manual Version 15.0, May 2018 Constants for SHELL Name Description Component.SXX Stress in XX Stress in YY Component.SYY Component.SZZ Stress in ZZ Component.SXY Stress in XY Component.SYZ Stress in YZ Component.SZX Stress in ZX Component.SMAX MAX principal stress MIN principal stress Component.SMIN MAX shear stress Component.SMS von Mises stress Component.SVON Component.SAV Average stress (Pressure) Triaxiality Factor Component.STR Component.EPS Effective plastic strain Strain in XX Component.EXX Strain in YY Component.EYY Strain in ZZ Component.EZZ Component.EXY Strain in XY Strain in YZ Component.EYZ Component.EZX Strain in ZX MAX principal strain Component.EMAX Component.EMIN MIN principal strain Component.EMS MAX shear strain von Mises strain Component.EVON Average strain Component.EAV Component.PEMAG Plastic Strain Magnitude Moment in X Component.RMX Moment in Y Component.RMY Moment in XY Component.RMXY Component.RQX Shear force in X Component.RQY Shear force in Y Component.RFX Normal force in X Component.RFY Normal force in Y Component.RFXY Normal force in XY Component.THK Thickness Internal energy density Component.EDEN Component.SHX Extra data Page J.16

363 User manual Version 15.0, May 2018 T/HIS Constants for THICK_SHELL Name Description Component.SXX Stress in XX Stress in YY Component.SYY Component.SZZ Stress in ZZ Component.SXY Stress in XY Component.SYZ Stress in YZ Component.SZX Stress in ZX Component.SMAX MAX principal stress MIN principal stress Component.SMIN MAX shear stress Component.SMS von Mises stress Component.SVON Average stress (Pressure) Component.SAV Component.STR Triaxiality Factor Effective plastic strain Component.EPL Strain in XX Component.EXX Strain in YY Component.EYY Component.EZZ Strain in ZZ Strain in XY Component.EXY Component.EYZ Strain in YZ Strain in ZX Component.EZX Component.EMAX MAX principal strain Component.EMIN MIN principal strain MAX shear strain Component.EMS von Mises strain Component.EVON Average strain Component.EAV Component.PEMAG Plastic Strain Magnitude Extra data Component.SHX Constants for RIGIDWALL Name Description Component.FN Normal force Component.FX Global X force Component.FY Global Y force Component.FZ Global Z force Component.EN Energy Constants for SPRING Description Name Page J.17

364 T/HIS User manual Version 15.0, May 2018 Component.SP_F Resultant Force Elongation Component.SP_E Res Force v Elongation Component.SP_FE Global X force Component.SP_FX Component.SP_FY Global Y force Component.SP_FZ Global Z force Component.SP_EN Energy Component.SP_M Resultant Moment Rotation Component.SP_R Res Moment v Rotation Component.SP_MR Component.SP_MX Moment in X Moment in Y Component.SP_MY Component.SP_MZ Moment in Z Constants for SEATBELT Name Description Force Component.SB_F Component.SB_S Strain Component.SB_FS Force v Strain Current Length Component.SB_L Constants for RETRACTOR Description Name Force Component.RT_F Pullout Component.RT_P Component.RT_FP Force v Pullout Constants for SLIPRING Description Name Pull through Component.SR_P Constants for PRETENSIONER Name Description Component.PR_FI ’Fired’ (= 1) Constants for CONTACT Name Description Component.CFX Master X force Master Y force Component.CFY Page J.18

365 User manual Version 15.0, May 2018 T/HIS Component.CFZ Master Z force Master Force Mag Component.CFM Slave X force Component.CFXS Slave Y force Component.CFYS Component.CFZS Slave Z force Component.CFMS Slave Force Mag Component.CMX Master X moment Component.CMY Master Y moment Component.CMZ Master Z moment Slave X moment Component.CMXS Slave Y moment Component.CMYS Component.CMZS Slave Z moment Master Mass Component.CMM Component.CMS Slave Mass Slave side energy Component.CENS Master side energy Component.CENM Frictional energy Component.CFRI Total energy Component.CTEN Constants for NODE_GROUP Name Description X force Component.RFX Component.RFY Y force Component.RFZ Z force Force Magnitude Component.RFM Energy Component.EN Component.LFX Local X force Local Y force Component.LFY Local Z force Component.LFZ X force Component.GRFX Component.GRFY Y force Component.GRFZ Z force Component.GRFM Force Magnitude Component.GEN Energy Constants for AIRBAG Name Description Component.PR Pressure Volume Component.VOL Page J.19

366 T/HIS User manual Version 15.0, May 2018 Component.DE Density Internal energy Component.IE Mass flow rate in Component.IN Mass flow rate out Component.OU Component.MASS Total mass Component.SA Surface area Component.TEMP Gas temperature Component.FR Reaction force Component.TKE Translational KE Inflator Energy Component.IFE Damping Energy Component.DMP Ave Particle Pressure Component.PP Mass flow via fabric Component.MAF Component.MAV Mass flow via vent Total area Component.AR Unblocked area Component.UN +ve Pressure Component.PRP Component.PRN -ve Pressure Heat Convection Energy Component.HCE Component.EV Enhanced Vent Flag Leak Energy Component.LE Component.PVO Por Volume Component.TRE Translational Energy Num Particles Component.NP X co-ordinate Component.X Component.Y Y co-ordinate Z co-ordinate Component.Z Component.VX X Velocity Y Velocity Component.VY Component.VZ Z Velocity Component.VM Velocity Magnitude Component.GAS Gas Flow rate Constants for JOINT Description Name Component.FX X force Component.FY Y force Component.FZ Z force Force Magnitude Component.FM Page J.20

367 User manual Version 15.0, May 2018 T/HIS Component.MX Moment in X Moment in Y Component.MY Moment in Z Component.MZ Moment Magnitude Component.MM Component.PHA Phi angle Component.PHDT d(Phi)/dt Component.PHS Phi stiffness moment Component.PHD Phi damping moment Component.PHT Phi total moment Theta angle Component.THA d(Theta)/dt Component.THDT Theta stiffness moment Component.THS Component.THD Theta damping moment Theta total moment Component.THT Component.PSA Psi angle d(Psi)/dt Component.PSDT Psi stiffness moment Component.PSS Psi damping moment Component.PSD Component.PST Psi total moment Total joint energy Component.EN Component.AA Alpha angle d(Alpha)/dt Component.ADT Component.ALS Alpha stiffness moment Component.ALD Alpha damping moment Alpha total moment Component.ALT Beta angle Component.BA Component.BDT d(Beta)/dt Beta stiffness moment Component.BES Component.BED Beta damping moment Beta total moment Component.BET Component.GA Gamma angle Component.GDT d(Gamma)/dt Component.GSF Gamma scale factor Component.DX X displacement Component.DXDT d(X)/dt Component.DY Y displacement Component.DYDT d(Y)/dt Z displacement Component.DZ Component.DZDT d(Z)/dt Page J.21

368 T/HIS User manual Version 15.0, May 2018 Component.SFX X stiffness force Y stiffness force Component.SFY Z stiffness force Component.SFZ X damping force Component.DFX Component.DFY Y damping force Component.DFZ Z damping force Component.TFX X total force Component.TFY Y total force Z total force Component.TFZ Constants for X_SECTION Description Name Component.XSEC_FX X force Y force Component.XSEC_FY Component.XSEC_FZ Z force Force Magnitude Component.XSEC_FM Component.XSEC_MX Moment in X Moment in Y Component.XSEC_MY Component.XSEC_MZ Moment in Z Component.XSEC_MM Moment Magnitude X centroid coord Component.XSEC_CX Component.XSEC_CY Y centroid coord Component.XSEC_CZ Z centroid coord Area of section Component.XSEC_A Constants for SUBSYSTEM Name Description Kinetic energy Component.GKE Internal energy Component.GIE Hourglass energy Component.GHG Component.GKR Kinetic Energy Ratio Component.GIR Internal Energy Ratio Component.GMX X momentum Component.GMY Y momentum Component.GMZ Z momentum Constants for PART_GROUP Name Description Kinetic energy Component.GKE Page J.22

369 User manual Version 15.0, May 2018 T/HIS Component.GIE Internal energy Hourglass energy Component.GHG Total energy Component.GTE Added mass Component.GMADD Constants for GEOMETERIC_CONTACT Description Name X force Component.FX Component.FY Y force Component.FZ Z force Force Magnitude Component.FM Moment in X Component.MX Moment in Y Component.MY Moment in Z Component.MZ Component.MM Moment Magnitude Constants for NODAL_RB Name Description X Displacement Component.DX Component.DY Y Displacement Z Displacement Component.DZ Component.DM Displacement Magnitude X Velocity Component.VX Component.VY Y Velocity Component.VZ Z Velocity Velocity Magnitude Component.VM X Acceleration Component.AX Component.AY Y Acceleration Z Acceleration Component.AZ Acceleration Magnitude Component.AM X co-ordinate Component.CX Component.CY Y co-ordinate Component.CZ Z co-ordinate Component.RDX X rotation Component.RDY Y rotation Component.RDZ Z rotation Component.RDM Rotation Magnitude X rotational velocity Component.RVX Component.RVY Y rotational velocity Page J.23

370 T/HIS User manual Version 15.0, May 2018 Component.RVZ Z rotational velocity Rotation Vel Magnitude Component.RVM X rotational acceleration Component.RAX Y rotational acceleration Component.RAY Component.RAZ Z rotational acceleration Component.RAM Rotation Accel Magnitude Component.D11 Direction Cosine 11 Component.D12 Direction Cosine 12 Component.D13 Direction Cosine 13 Direction Cosine 21 Component.D21 Direction Cosine 22 Component.D22 Direction Cosine 23 Component.D23 Direction Cosine 31 Component.D31 Component.D32 Direction Cosine 32 Direction Cosine 33 Component.D33 Local X Displacement Component.LDX Local Y Displacement Component.LDY Component.LDZ Local Z Displacement Local X Velocity Component.LVX Component.LVY Local Y Velocity Local Z Velocity Component.LVZ Component.LAX Local X Acceleration Component.LAY Local Y Acceleration Local Z Acceleration Component.LAZ Local X rotation Component.LRDX Component.LRDY Local Y rotation Local Z rotation Component.LRDZ Component.LRVX Local X rotational vel Local Y rotational vel Component.LRVY Component.LRVZ Local Z rotational vel Component.LRAX Local X rotational accel Component.LRAY Local Y rotational accel Component.LRAZ Local Z rotational accel Constants for WELD Name Description Component.SW_F Axial force Component.SW_S Shear force Failure Component.SW_FAIL Page J.24

371 User manual Version 15.0, May 2018 T/HIS Component.SW_MF Maximum Failure Length Component.SW_LE Failure Time Component.SW_TIME Moment Magnitude Component.SW_MM Torsion Component.SW_TO Component.SW_FF DC Failure Function Component.SW_NF Normal Failure Component.SW_SF Shear Failure Bending Failure Component.SW_BF Spotweld Area Component.SW_AREA Constants for SPC Name Description Component.SPC_FX X force Y force Component.SPC_FY Z force Component.SPC_FZ Component.SPC_FM Force Magnitude Component.SPC_MX Moment in X Component.SPC_MY Moment in Y Component.SPC_MZ Moment in Z Moment Magnitude Component.SPC_MM Constants for BOUNDARY Description Name Applied X Force Component.FX Applied Y Force Component.FY Component.FZ Applied Z Force Applied Resultant force Component.FR Energy from applied force Component.EN BC motion X Moment Component.MX Component.MY BC motion Y Moment Component.MZ BC motion Z Moment Component.MM BC Moment Magnitude Constants for FSI Name Description Component.PR Pressure Component.FX X force Y force Component.FY Page J.25

372 T/HIS User manual Version 15.0, May 2018 Component.FZ Z force Force Magnitude Component.FM Mass (Porous+Vent) Component.MP Mass (Leakage) Component.ML Component.LFX Leakage X Force Component.LFY Leakage Y Force Component.LFZ Leakage Z Force Component.LFM Leakage Force Magnitude Component.TEMP Temperature Temperature Change Component.TC X co-ordinate Component.X Y co-ordinate Component.Y Z co-ordinate Component.Z Component.SO Cpld Solid ID Constants for SPH Name Description Component.DE Density Strain in XX Component.EXX Strain in YY Component.EYY Strain in ZZ Component.EZZ Component.EXY Strain in XY Strain in YZ Component.EYZ Component.EZX Strain in ZX Component.EFS Effective Stress Stress in XX Component.SXX Stress in YY Component.SYY Component.SZZ Stress in ZZ Stress in XY Component.SXY Stress in YZ Component.SYZ Stress in ZX Component.SZX Component.SM Smoothing Length Component.TEMP Temperature Component.ERXX Strain in XX Component.ERYY Strain in YY Component.ERZZ Strain in ZZ Component.ERXY Strain in XY Strain in YZ Component.ERYZ Component.ERZX Strain in ZX Page J.26

373 User manual Version 15.0, May 2018 T/HIS Constants for TRACER Name Description Component.CX X co-ordinate Y co-ordinate Component.CY Component.CZ Z co-ordinate Component.CV Current Vector Component.VX X Velocity Component.VY Y Velocity Component.VZ Z Velocity Velocity Magnitude Component.VM Stress in XX Component.SXX Stress in YY Component.SYY Stress in ZZ Component.SZZ Component.SXY Stress in XY Stress in YZ Component.SYZ Stress in ZX Component.SZX Effective Plastic Strain Component.EPL Component.DE Density Relative Volume Component.RV Component.AC Active Constants for PULLEY Description Name Force Component.PL_FT Slip Component.PL_SL Slip Rate Component.PL_SR Component.PL_AN Wrap Angle Constants for ICFD Name Description X Pressure Drag Component.FPX Component.FPY Y Pressure Drag Component.FPZ Z Pressure Drag Component.FPM Pressure Drag Magnitude Component.FVX X Viscous Drag Component.FVY Y Viscous Drag Component.FVZ Z Viscous Drag Component.FVM Viscous Drag Magnitude MX Pressure Drag Component.MPX Page J.27

374 T/HIS User manual Version 15.0, May 2018 Component.MPY MY Pressure Drag MZ Pressure Drag Component.MPZ Pressure Drag Magnitude Component.MPM MX Viscous Drag Component.MVX Component.MVY MY Viscous Drag Component.MVZ MZ Viscous Drag Component.MVM Viscous Drag Magnitude Component.CX X co-ordinate Component.CY Y co-ordinate Z co-ordinate Component.CZ Current Vector Component.CV X Velocity Component.VX Y Velocity Component.VY Component.VZ Z Velocity Velocity Magnitude Component.VM X AVelocity Component.AVX Y AVelocity Component.AVY Component.AVZ Z AVelocity AVelocity Magnitude Component.AVM Component.PR Pressure Average Pressure Component.PA Component.DE Density Component.VTX X Vorticity Y Vorticity Component.VTY Z Vorticity Component.VTZ Component.VTM Vorticity Magnitude Q Criterion Component.QC Component.VC Viscosity Viscous Turbulence Component.VT Component.LS Level Set Function Component.A Alpha Component.TEMP Temperature Component.TAA Temp Area Average Component.TSA Temp Sum Average Component.TEH Average Heat Flux Component.AR Total Area Heat Transfer Coeff Component.HTC Constants for CESE Page J.28

375 User manual Version 15.0, May 2018 T/HIS Name Description X co-ordinate Component.CX Y co-ordinate Component.CY Z co-ordinate Component.CZ Component.CV Current Vector Component.VX X Velocity Component.VY Y Velocity Component.VZ Z Velocity Component.VM Velocity Magnitude X Vorticity Component.VTX Y Vorticity Component.VTY Z Vorticity Component.VTZ Vorticity Magnitude Component.VTM Component.DE Density Pressure Component.PR Temperature Component.TEMP X Pressure Force Component.FPX Component.FPY Y Pressure Force Z Pressure Force Component.FPZ Component.FPM Pressure Force Magnitdue X Viscous Force Component.FVX Component.FVY Y Viscous Force Component.FVZ Z Viscous Force Viscous Force Magnitude Component.FVM Total Area Component.AR Constants for EM Description Name Component.CX X co-ordinate Y co-ordinate Component.CY Component.CZ Z co-ordinate Component.CV Current Vector Component.ECX X Current Component.ECY Y Current Component.ECZ Z Current Component.ECM Current Magnitude Component.BFDX X BField Y BField Component.BFDY Component.BFDZ Z BField Page J.29

376 T/HIS User manual Version 15.0, May 2018 Component.BFDM BField Magnitude X AField Component.AFX Y AField Component.AFY Z AField Component.AFZ Component.AFM AField Magnitude Component.S Sigma Component.MUR Relative Permeability Component.JHR Joule Heating Rate Component.LOFX X Lorentz Force Y Lorentz Force Component.LOFY Z Lorentz Force Component.LOFZ Component.LOFM Lorentz Force Magnitude X EField Component.EFX Component.EFY Y EField Z EField Component.EFZ EField Magnitude Component.EFM Constants for PBLAST Name Description Air Internal Energy Component.AIE Component.DPIE Detn Product IE Outside Domain IE Component.OIE Component.ATE Air Translational E Component.DPTE Detn Product Trans E Outside Domain Trans E Component.OTE Air Pressure Component.APR Component.DPPR Detn Product Pressure Resultant Pressure Component.RPR Component.AR Surface Area Air X Force Component.AFX Component.AFY Air Y Force Component.AFZ Air Z Force Component.DPFX Detn Product X Force Component.DPFY Detn Product Y Force Component.DPFZ Detn Product Z Force Component.RFX Resultant X Force Component.RFY Resultant Y Force Resultant Z Force Component.RFZ Constants for PRTUBE Page J.30

377 User manual Version 15.0, May 2018 T/HIS Name Description Cross section area Component.AR Density Component.DE Pressure Component.PR Component.VEL Velocity Constants for BEARING Description Name Component.FX X Force Y Force Component.FY Z Force Component.FZ Component.MX X Moment Y Moment Component.MY Component.MZ Z Moment X Displacement Component.DX Component.DY Y Displacement Component.DZ Z Displacement Component.AX X Angle Y Angle Component.AY Component.AZ Z Angle Component.LFX Local X Force Local Y Force Component.LFY Local Z Force Component.LFZ Local X Moment Component.LMX Component.LMY Local Y Moment Local Z Moment Component.LMZ Component.LDX Local X Displacement Component.LDY Local Y Displacement Component.LDZ Local Z Displacement Component.LAX Local X Angle Component.LAY Local Y Angle Local Z Angle Component.LAZ Page J.31

378 T/HIS User manual Version 15.0, May 2018 Curve class r The Curve class gives you access to curves in T/HIS. . . o e M . Class functions d a g g e d T o G r a p h (flag [ F l a g ] , graph, graph... [int] ) l • A F d (source • , target [integer] ) C o p y [integer] e e (curve [integer] ) l e D • t e t e F l a • g e d (flag [ F l a g ] ) D e l g i t s (curve [integer] ) • E x s s () r t • F i s t F r e e I • () F i r D r s t I D () i F • a • A l l (flag [integer] ) F l g e F r o m I D (ID [integer] ) • G t t G o m T a g (TAG [string] ) • F e r h t s g I D () • H i e k (prompt [string] , modal (optional) [boolean] ) i P • c m o v e F l a g g e d F r • m G r a p h (flag [ F l a g ] , graph, graph... [int] ) R e o e e c t (flag [integer] , prompt [string] , modal (optional) [boolean] ) • S l (flag f a g A l l l [integer] ) • U n Member functions d d P o i n t (xvalue [real] , yvalue [real] ) • A d A o G r a p h (graph, graph... [int] ) • d T e C F l a g (flag [integer] ) • a l r e n e P o i l t (ipt [integer] ) • D t e [integer] g e d (flag g ) a F • l t P o i n • (row [integer] ) G e t n e r t P o i n t (ipt [integer] , xvalue [real] , yvalue [real] , position [integer] ) s • I x • () N e t e v r o u s () P • i e m o v e F r o m G r a p h (graph, graph... [int] ) • R e S l a g (flag [integer] ) • t F [real] t i n t (ipt [integer] , xvalue o , yvalue [real] ) e P • S d a t e • U p () a X (xvalue [real] ) • Y t Curve constants Name Description Curve.AFTER Insertion of curve data option. Curve.BEFORE Insertion of curve data option. Curve properties Description Name Type Curve average value (read only) float average l u r The colour of the curve C o o colour string directory Directory the curve came from The ID of the entity that the curve was generated from. integer entity_id n t i t y T y p e The entity type that the curve was generated from entity_type E Filename the curve came from file string float Curve HIC value - returns 0.0 if the HIC hasn’t been calculated (read only) hic hic_tmax float End of HIC time windows - returns 0.0 if the HIC hasn’t been calculated (read only) Start of HIC time windows - returns 0.0 if the HIC hasn’t been calculated (read only) hic_tmin float Curve HIC(d) value - returns 0.0 if the HIC(d) hasn’t been calculated (read only) float hicd hicd_tmax float End of HIC(d) time windows - returns 0.0 if the HIC(d) hasn’t been calculated (read only) Page J.32

379 User manual Version 15.0, May 2018 T/HIS hicd_tmin float Start of HIC(d) time windows - returns 0.0 if the HIC(d) hasn’t been calculated (read only) integer id Curve ID (read only) integer is_null Returns 1 if the curve is NULL (read only) label string Curve label integer The ID of the model that a curve was read from. model npoints Number of curve points (read only) integer float rms Curve RMS value (read only) e S t y l e The line style used to draw the curve L i style n m b o l symbol S y The symbol style for a curve Curve tag. If a FAST-TCF script is running then this is the FAST-TCF tag tag string string Curve title title float tms 3ms Clip value - returns 0.0 if the 3ms Clip value hasn’t been calculated (read only) End of 3ms clip time windows - returns 0.0 if the 3ms Clip hasn’t been calculated (read float tms_tmax only) tms_tmin Start of 3ms clip time windows - returns 0.0 if the 3ms Clip hasn’t been calculated (read float only) i t S y s t e m The Curve unit system U unit_system n i n e W i d t h The line width used to draw the curve width L X axis value at the Y axis maximum (read only) float x_at_ymax x_at_ymin X axis value at the Y axis minimum (read only) float string x_axis_label Curve X axis label t s i n U x_axis_unit The X axis unit xmax float X axis maximum value (read only) xmin X axis minimum value (read only) float Curve Y axis label y_axis_label string i y_axis_unit s The Y axis unit n U t Y axis maximum value (read only) ymax float Y axis minimum value (read only) float ymin Detailed Description The Curve class allows you to create, modify, edit and manipulate curves. See the documentation below for more details. Constructor [string] , Line label (optional) new Curve(lcid , X-axis label (optional) [string] , [integer] , tag (optional) [string] ) Y-axis label (optional) [string] Description C u r v e object. The curve will be added to all the currently active graphs. Create a new Page J.33

380 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type r v e number lcid C integer u Tag used to reference the curve in FAST-TCF scripts tag (optional) string string Line label for the curve Line label (optional) X-axis label (optional) string X-axis label for the curve Y-axis label (optional) string Y-axis label for the curve Return type v e object C r u Example To create a new curve with label 200 var l = new Curve(200); Details of functions F l a g ] , graph, graph... [int] ) [static] AddFlaggedToGraph(flag [ Description Adds flagged curves to a graph. Arguments Description Type Name flag l a g Flag to check on the curve F Optional list of graphs to remove the curve from, If undefined then the curve is removed from int graph, graph... all graphs. Return type No return value. Example To remove curves flagged with flag f from graphs 1 and 3: Curve.AddFlaggedToGraph(f,1,3); To remove a curves flagged with flag from all graphs: Curve.AddToGraph(f); , yvalue [real] AddPoint(xvalue [real] ) Description Adds a point at the end of the curve. Arguments Type Description Name The x value of the point. xvalue real The y value of the point. real yvalue Page J.34

381 User manual Version 15.0, May 2018 T/HIS Return type No return value. Example To add the point x=3.5, y=5.5 to curve l: l.AddPoint(3.5,5.5); [int] AddToGraph(graph, graph... ) Description Adds a curve to a graph. Arguments Type Description Name graph, graph... Optional list of graphs to add the curve to, If undefined then the curve is added to all graphs. int Return type No return value. Example To add a curve (c) to graphs 1 and 3: c.AddToGraph(1,3); To add a curve (c) to all graphs: c.AddToGraph(); ) ClearFlag(flag [integer] Description Clears a flag on the curve. Arguments Type Name Description flag integer Flag to clear on the curve Return type No return value Example To clear flag f for curve l: l.ClearFlag(f); , target [integer] ) [static] [integer] Copy(source Description Copies a curve. Page J.35

382 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type integer source ID of curve to copy from ID of curve to copy to integer target Return type No return value Example To copy curve 1 to curve 4: var curve = Curve.Copy(1,4); To copy curve a to curve b, Curve.Copy(a.id,b.id); [integer] Delete(curve ) [static] Description Deletes a curve Arguments Name Description Type curve integer ID of curve to delete Return type No return value Example To delete curve n Curve.Delete(n); l a g ] ) [static] DeleteFlagged(flag F [ Description Deletes flagged curves Arguments Name Type Description l a g Flag to check on the curve flag F Return type No return value Example To delete curves flagged with flag f Curve.DeleteFlagged(f); Page J.36

383 User manual Version 15.0, May 2018 T/HIS DeletePoint(ipt [integer] ) Description Deletes a point in a curve. The input for the point number should start at 1 for the 1st point not zero. Arguments Name Description Type ipt integer The point you want to insert the data before or after. Return type No return value. Example To delete the 3rd point in curve l: l.DeletePoint(3); Exists(curve [integer] ) [static] Description Checks if a curve exists Arguments Description Name Type ID of curve to check integer curve Return type TRUE if the curve exists, otherwise FALSE Example To check if a curve n exists var exists = Curve.Exists(n); First() [static] Description Returns the first curve. Arguments No arguments Return type Curve object (or null if there are no more curves in the model). Example To get the 1st curve var curve = Curve.First(); FirstFreeID() [static] Description Returns the ID of the first free curve. Page J.37

384 T/HIS User manual Version 15.0, May 2018 Arguments No arguments Return type ID of first unsued curve. Example To get the ID of the first free curve: var curve = Curve.FirstFreeID(); FirstID() [static] Description Returns the ID of the first curve. Arguments No arguments Return type ID of the first curve defined. Example To get the 1st curve var curve = Curve.FirstID(); FlagAll(flag [integer] ) [static] Description Flags all of the curves with a defined flag Arguments Description Name Type Flag to set on the curves integer flag Return type No return value Example To flag all of the curves with flag f: Curve.FlagAll(f); Flagged(flag ) [integer] Description Checks if the curve is flagged or not. Arguments Type Description Name flag integer Flag to check on the curve Page J.38

385 User manual Version 15.0, May 2018 T/HIS Return type true if flagged, false if not. Example To check if curve d has flag f set on it: if (d.Flagged(f) ) do_something... [integer] GetFromID(ID ) [static] Description Returns the curve object for a curve ID. Arguments Type Description Name ID integer ID of curve to return object for Return type Curve object (or null if the curve does not exist. Example To get the curve n var curve = Curve.GetFromID(n); GetFromTag(TAG [string] ) [static] Description Finds a curve from it’s Tag. This function is only available when running a Javascript from within a FAST-TCF script Arguments Description Type Name string TAG of curve to return object for TAG Return type Curve object (or null if there are no free curves). Example To get the curve with a tag "tag" var curve = Curve.GetFromTag(tag); ) [integer] GetPoint(row Description Returns x and y data for a point in a curve. The input for the point number should start at 1 for the 1st point not zero. In the array returned array[0] contains the x axis value and array[1] contains the y-axis value. Arguments Name Type Description row integer The point you want the data for. Page J.39

386 T/HIS User manual Version 15.0, May 2018 Return type An array containing the x value and the y value. Example To get the curve data for the 3rd point for curve l: if (l.npoints >= 3) { var point_data = l.GetPoint(3); } HighestID() [static] Description Returns the ID of the highest curve currently being used Arguments No arguments Return type ID of highest curve currently being used. Example To get the highest curve ID var id= Curve.HighestID(); ) , yvalue [real] , position [integer] [real] , xvalue [integer] InsertPoint(ipt Description Inserts a new point before or after the specified point. Arguments Description Type Name integer The point you want to insert the data before or after. ipt xvalue The x value of the point. real yvalue real The y value of the point. Specify either before or after the selected pioint. Use ’Curve.BEFORE’ for before, and integer position ’Curve.AFTER’ for after. Return type No return value. Example To insert the values after the 3rd row to x=3, y=5 for curve l: l.InsertPoint(3, 3, 5, Curve.AFTER); Next() Description Returns the next curve in the model. Arguments No arguments Page J.40

387 User manual Version 15.0, May 2018 T/HIS Return type Curve object (or null if there are no more curves in the model). Example To get the curve in model m after curve l: var curve = l.Next(); ) [static] [string] , modal (optional) Pick(prompt [boolean] Description Picks a single curve. Arguments Type Description Name Text to display as a prompt to the user string prompt If selection is modal (blocks the user from doing anything else in T/HIS until this window is modal boolean (optional) dismissed). If omitted the selection will be modal. Return type Curve object (or null if the user cancles the pick operation). Example To pick a curve, giving the prompt ’Pick curve’: var curve = Curve.Pick(’Pick curves’); Previous() Description Returns the previous curve in the model. Arguments No arguments Return type Curve object (or null if there are no more curves in the model). Example To get the curve in model m before this one: var curve = curve.Previous(); ) [static] a g ] RemoveFlaggedFromGraph(flag [int] l [ F , graph, graph... Description Removes flagged curves from a graph. Arguments Description Name Type l g Flag to check on the curve flag a F graph, Optional list of graphs to remove the curve from, If undefined then the curve is removed from int all graphs. graph... Page J.41

388 T/HIS User manual Version 15.0, May 2018 Return type No return value. Example To remove curves flagged with flag f from graphs 1 and 3: Curve.RemoveFlaggedFromGraph(f,1,3); To remove a curves flagged with flag from all graphs: Curve.RemoveFromGraph(f); ) RemoveFromGraph(graph, graph... [int] Description Removes a curve from a graph. Arguments Description Name Type Optional list of graphs to remove the curve from, If undefined then the curve is removed from graph, int all graphs. graph... Return type No return value. Example To remove a curve (c) from graphs 1 and 3: c.RemoveFromGraph(1,3); To remove a curve (c) from all graphs: c.RemoveFromGraph(); , prompt [string] , modal (optional) [boolean] ) [static] Select(flag [integer] Description Allows the user to select curves. Arguments Type Name Description flag Flag to use when selecting curves integer prompt string Text to display as a prompt to the user If selection is modal (blocks the user from doing anything else in T/HIS until this window is boolean modal (optional) dismissed). If omitted the selection will be modal. Return type Number of items selected or null if menu cancelled Example To select curves, flagging those selected which flag f, giving the prompt ’Select curves’: var num = Curve.Select(f, ’Select curves’); Page J.42

389 User manual Version 15.0, May 2018 T/HIS SetFlag(flag [integer] ) Description Sets a flag on the curve. Arguments Type Name Description Flag to set on the curve integer flag Return type No return value Example To set flag f for curve l: l.SetFlag(f); [real] , yvalue [real] ) [integer] SetPoint(ipt , xvalue Description Sets the x and y values for a specified point in a curve. Arguments Name Type Description The point to set the data for. ipt integer The x value of the point. real xvalue real The y value of the point. yvalue Return type No return value. Example To set the values for the 3rd point to x=3, y=5 for curve l: l.SetPoint(3, 3, 5); UnflagAll(flag ) [static] [integer] Description Unsets a defined flag on all of the curves. Arguments Description Name Type integer Flag to unset on the curves flag Return type No return value Example To unset the flag f on all of the curves: Curve.UnflagAll(f); Page J.43

390 T/HIS User manual Version 15.0, May 2018 Update() Description Updates a curve properties (min,max, average values etc). Arguments No arguments Return type No return value. Example To update the properties of curve l: l.Update(); ) YatX(xvalue [real] Description Returns the y value of the curve at a given x value, interpolating if requested x value lies between data points. Arguments Description Name Type real The x value. xvalue Return type The y value. Example To get the y value of curve c when x=1.4: var y = c.YatX(1.4); Page J.44

391 User manual Version 15.0, May 2018 T/HIS Datum class r The Datum class gives you access to datums in T/HIS. . . o e M . Class functions l e (datum [string] ) • D e e t t s (datum [string] ) i x E • s s t • F i r () t r o m A c r o n F m (datum [string] ) • e G y Member functions • T o G r a p h (graph, graph... [int] ) A d d e t () • N x m [int] v e F r o m G r a p h (graph, graph... e ) • R o Datum constants Description Name Datum.CONSTANT_X Constant X type datum. Datum.CONSTANT_Y Constant Y type datum. Constant Y2 type datum. Datum.CONSTANT_Y2 Fill datum above and below. Datum.FILL_ABOVE_BELOW Fill datum right and left. Datum.FILL_RIGHT_LEFT Datum.LABEL_ABOVE_CENTRE Label position above centre. Label position above left. Datum.LABEL_ABOVE_LEFT Datum.LABEL_ABOVE_RIGHT Label position above right. Label position below centre. Datum.LABEL_BELOW_CENTRE Datum.LABEL_BELOW_LEFT Label position below left. Label position below right. Datum.LABEL_BELOW_RIGHT Label position bottom left. Datum.LABEL_BOTTOM_LEFT Datum.LABEL_BOTTOM_RIGHT Label position bottom right. Label position middle left. Datum.LABEL_MIDDLE_LEFT Label position middle right. Datum.LABEL_MIDDLE_RIGHT Datum.LABEL_NONE No label. Label position top left. Datum.LABEL_TOP_LEFT Datum.LABEL_TOP_RIGHT Label position top right. Datum.POINTS Points type datum. Datum properties Description Type Name acronym string Datum acronym l o u r The colour above the datum line C fill_colour_above o o o u r The colour below the datum line fill_colour_below C l l o u r The colour left of the datum line C fill_colour_left o o l o u r The colour right of the datum line fill_colour_right C a The fill type. Can be a t u m . F I L L _ A B O V E _ B E L O W , D D t u m . F I L L _ R I G H T _ L E F T . fill_type integer Note that this can only be changed if the datum is of the type Datum.POINTS. Page J.45

392 T/HIS User manual Version 15.0, May 2018 label string Datum label l C r The colour of the datum label label_colour o o u _ a m . L A B E L u N O N E D t label_position integer The label position. Can be m . L A B E L _ A B O V E _ C E N T R E , D a t u m . L A B E L _ A B O V E _ D E F T , a t u L u . L A B E L _ A B O V E _ R I G H T , D a t u m . L A B E L _ B E L O W _ C E N T R E , t a D m u m . L A B E L D B E L O W _ L E F T , D a t u m . L A B E L _ B E L O W _ R I G H T , a t _ t m . L A B E L _ M I D D L E _ L E F T , D a t u m . L A B E L _ T O P _ L E F T , D a u u u . L A B E L _ B O T T O M _ L E F T , D a t t m . L A B E L _ M I D D L E _ R I G H T , a D m t u m . L A B E L _ T O P _ R I G H T , D a t u m . L A B E L _ B O T T O M _ R I G H T , D a o C u r The colour of the datum line line_colour l o n e t y l e The line style used to draw the datum line L line_style i S e W d t h The line width used to draw the datum line i i n line_width L Detailed Description The Datum class allows you to create and manipulate datums. See the documentation below for more details. Constructor , value [real or array] ) new Datum(acronym [string] , type [integer] Description D Create a new t a m object. The datum will be added to all the currently active graphs. u Arguments Name Type Description D a u m acronym acronym string t a D t u m . C O N S T A N T Specify type of datum line. Can be X , D a t u m . C O N S T A N T _ Y , integer type _ t u m . C O N S T A N T _ Y 2 , D a t u m . P O I N T S D a S type a t u m . C O N S T A N T _ X , D a t u m . C O N D T A N T _ Y or D a t u m . C O N S T A N T _ Y 2 Value for value real or a t u m . If it is a D a t u m . P O I N T S type D a t u m then this should be an array of X, Y pairs. array D Return type a m object t u D Example To create a new datum with acronym my_datum and a constant Y value of 100 var d = new Datum("my_datum", Datum.CONSTANT_Y, 100); To create a new datum with acronym my_datum and some X, Y points var points = new Array(6); points[0] = 0.0; points[1] = 10.0; points[2] = 1.0; points[3] = 15.0; points[4] = 2.0; points[5] = 17.0; var d = new Datum("my_datum", Datum.POINTS, points); Details of functions AddToGraph(graph, graph... [int] ) Description Adds a datum to a graph. Page J.46

393 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type int graph, graph... Optional list of graphs to add the datum to, If undefined then the datum is added to all graphs. Return type No return value. Example To add a datum (d) to graphs 1 and 3: d.AddToGraph(1,3); To add a datum (d) to all graphs: d.AddToGraph(); Delete(datum [string] ) [static] Description Deletes a datum Arguments Name Type Description datum string Acronym of datum to delete Return type No return value Example To delete datum "my_datum" Datum.Delete("my_datum"); [string] Exists(datum ) [static] Description Checks if a datum exists Arguments Type Description Name Acronym of datum to check datum string Return type TRUE if the datum exists, otherwise FALSE Example To check if a datum "my_datum" exists var exists = Datum.Exists("my_datum"); First() [static] Description Returns the first datum. Page J.47

394 T/HIS User manual Version 15.0, May 2018 Arguments No arguments Return type Datum object (or null if there are no datum in the model). Example To get the 1st datum var d = Datum.First(); ) [static] [string] GetFromAcronym(datum Description Returns the datum object for a datum acronym. Arguments Name Type Description Acronym of datum to return object for string datum Return type Datum object (or null if the datum does not exist). Example To get the datum "my_datum" var d = Datum.GetFromAcronym("my_datum"); Next() Description Returns the next datum in the model. Arguments No arguments Return type Datum object (or null if there are no more datums in the model). Example To get the next datum after datum d: var datum = d.Next(); RemoveFromGraph(graph, graph... ) [int] Description Removes a datum from a graph. Arguments Description Type Name graph, int Optional list of graphs to remove the datum from, If undefined then the datum is removed from graph... all graphs. Page J.48

395 User manual Version 15.0, May 2018 T/HIS Return type No return value. Example To remove a datum (d) from graphs 1 and 3: d.RemoveFromGraph(1,3); To remove a datum (d) from all graphs: d.RemoveFromGraph(); Page J.49

396 T/HIS User manual Version 15.0, May 2018 Entity class r The Entity class contains constants relating to Entity types. . . o e M . Entity constants Name Description AIRBAG entity code (for all airbag related entities) Entity.AIRBAG AIRBAG CHAMBER DATA entity code Entity.AIRBAG_CHAMBER_DATA AIRBAG CPM SENSORS entity code Entity.AIRBAG_CPM_SENSORS Entity.AIRBAG_DATA AIRBAG DATA entity code Entity.AIRBAG_PART_DATA AIRBAG PART DATA entity code Entity.BEAM BEAM entity code Entity.BEAM_DISCRETE DISCRETE BEAM entity code Entity.BEAM_NORMAL NORMAL BEAM entity code Entity.BEARING BEARING entity code BOUNDARY entity code Entity.BOUNDARY DISCRETE NODAL LOAD entity code Entity.BOUNDARY_DIS_NODAL_LOAD DISCRETE RIGID BODY LOAD entity code Entity.BOUNDARY_DIS_RBODY_LOAD Entity.BOUNDARY_PRES_NODAL_LOAD PRESSURE NODAL LOAD entity code VELOCITY NODAL LOAD entity code Entity.BOUNDARY_VEL_NODAL_LOAD Entity.BOUNDARY_VEL_RBODY_LOAD VELOCITY RIGID BODY LOAD entity code CESE entity code Entity.CESE Entity.CESE_DRAG_DATA CESE FSI DRAG DATA entity code Entity.CESE_NODE_DATA CESE NODE DATA entity code CESE POINT DATA entity code Entity.CESE_POINT_DATA CESE SEGMENT SET DATA entity code Entity.CESE_SEGMENT_DATA Entity.CONTACT CONTACT entity code CONTACT ENERGIES entity code Entity.CONTACT_ENERGIES Entity.CONTACT_FORCES CONTACT FORCES entity code EM entity code Entity.EM Entity.EM_NODE_DATA EM NODE DATA entity code Entity.EM_POINT_DATA EM POINT DATA entity code Entity.FSI FSI entity code Entity.FSI_SENSOR_DATA FSI SENSOR DATA entity code Entity.FSI_SURFACE_DATA FSI SURFACE DATA entity code Entity.GEOMETRIC_CONTACT GEOMETRIC CONTACT entity code Entity.ICFD ICFD entity code Entity.ICFD_DRAG_DATA ICFD DRAG DATA entity code ICFD NODE DATA entity code Entity.ICFD_NODE_DATA Entity.ICFD_POINT_DATA ICFD POINT DATA entity code Page J.50

397 User manual Version 15.0, May 2018 T/HIS Entity.ICFD_THERMAL_DATA ICFD THERMAL DATA entity code JOINT entity code Entity.JOINT FLEXION TORSION JOINT entity code Entity.JOINT_FLEXION_TORSION GENERALIZED JOINT entity code Entity.JOINT_GENERALIZED Entity.JOINT_JOINT Conventional LS-DYNA JOINT entity code Entity.JOINT_TRANSLATIONAL TRANSLATIONAL JOINT entity code Entity.MASS MASS entity code Entity.MODEL MODEL entity code Entity.NODAL_RB NODAL RIGID BODY entity code BODY in NODAL RIGID BODY entity code Entity.NODAL_RB_BODY PART in NODAL RIGID BODY entity code Entity.NODAL_RB_PART NODE entity code Entity.NODE Entity.NODE_GROUP NODAL FORCE GROUP entity code GROUPS in NODAL FORCE GROUP entity code Entity.NODE_GROUP_GROUPS Entity.NODE_GROUP_NODES NODES in NODAL FORCE GROUP entity code PART entity code Entity.PART PART GROUP entity code Entity.PART_GROUP PBLAST entity code Entity.PBLAST Entity.PBLAST_DATA PBLAST DATA entity code PBLAST PART entity code Entity.PBLAST_PART Entity.PRETENSIONER PRETENSIONER entity code PRTUBE entity code Entity.PRTUBE Entity.PULLEY PULLEY entity code Entity.RETRACTOR RETRACTOR entity code RIGIDWALL entity code Entity.RIGIDWALL SEATBELT entity code Entity.SEATBELT Entity.SHELL SHELL entity code SLIPRING entity code Entity.SLIPRING Entity.SOLID SOLID entity code SPC entity code Entity.SPC Entity.SPC_FORCES SPC FORCES entity code Entity.SPC_MOMENTS SPC MOMENTS entity code Entity.SPH SPH entity code Entity.SPRING SPRING entity code Entity.SPRING_ROTATIONAL ROTATIONAL SPRING entity code Entity.SPRING_TRANSLATIONAL TRANSLATIONAL SPRING entity code Entity.SUBSYSTEM SUBSYSTEM entity code THICK SHELL entity code Entity.THICK_SHELL Entity.TRACER TRACER entity code Page J.51

398 T/HIS User manual Version 15.0, May 2018 Entity.WELD WELD entity code Entity.WELD_ASSEMBLY WELD ASSEMBLY entity code CONSTRAINED WELD entity code Entity.WELD_CONSTRAINED Entity.WELD_GENERALISED GENERALISED WELD entity code Entity.WELD_NON_NODAL NON-NODAL WELD entity code Entity.WELD_SOLID SOLID WELD entity code SPOTWELD BEAMS entity code Entity.WELD_SPOTWELD_BEAMS Entity.X_SECTION CROSS SECTION entity code Detailed Description The Entity class is used to define entity type codes that can then be compared with the entity Curve property and input for functions in the Model class. Node = Entity.NODE; Page J.52

399 User manual Version 15.0, May 2018 T/HIS File class r The File class allows you to read and write text files. . . o e M . Class functions p [string] , dest [string] ) • C y o (source t (filename [string] ) e • D e e l t s (filename [string] ) • E x i s , type (optional) F l e s (directory [string] i [constant] ) d n F • i (url [string] • [string] , options (optional) [object] ) G e t , filename A s o l u t e (filename [string] ) • I s b i o e c t D r y (filename [string] ) • r I s i l e (filename [string] ) F s • I R e a d a b l e (filename • ) I s [string] s r i t a b l e (filename [string] ) • I W d M (directory [string] ) • i k r e p () t • M k m x y (name [string] ) • P r o r o P a s s w o y d (name [string] ) r P • x o x y U • e r n a m e (username [string] ) P r s e d C S V (filename [string] , delimiter (optional) [string] , comment (optional) [string] ) • R a n m e e (oldname [string] , newname [string] ) • a R z e (filename [string] ) i • S p l o a d (filename [string] , url [string] , options (optional) [object] ) • U Member functions C s e () • l o g n i n e C o n t a i n i n L (contain1 [string] , contain2 (optional) [string] , contain3 (optional) [string] , ... containn • d i F ) [string] (optional) n d L i n e S t a r t i n g (start1 [string] , start2 (optional) [string] , start3 (optional) [string] , ... startn (optional) • ) F i [string] l s h () • F u a A l l () e d • R a d A r r a y B u f • e r (length (optional) [integer] ) R e f e d C h a r () R • a e a d L i n e () • R e R L o n g L i n e () • a d e [constant] (offset [integer] , origin (optional) e ) • S k l () e • T l i r e (string [Any valid javascript type] ) W • t r i t e A r r a y B u f f e r (buffer [ A r r a y B u f f e r ] , length (optional) [integer] ) • W r W e l n (string [Any valid javascript type] ) • i t File constants Name Description File.APPEND Flag to open file for appending File.BINARY Flag to open file in binary mode. This will have no effect on unix/linux but for windows if a file is opened for writing with binary mode \n will not be translated to \r\n (CRLF), it will be written as \n (LF) File.READ Flag to open file for reading File.UTF8 Flag to open file for reading as UTF-8 encoding. File.WRITE Flag to open file for writing Constants for Seek types Name Description File.CURRENT Seek relative to current file position File.END Seek relative to end of the file Seek relative to start of the file File.START Constants for Find types Page J.53

400 T/HIS User manual Version 15.0, May 2018 Name Description Find directories File.DIRECTORY Find files File.FILE File properties Name Type Description filename (read only) Name of the file string i l e . R E A D , F i l e mode (read only) W R I T E etc) constant Mode the file was opened with ( F . Detailed Description The File class gives you simple functions to read and write text files. The following simple example shows how to read from the file "/data/test/file.txt" and print each line read to the dialogue box: var f, line; f = new File("/data/test/file.txt", File.READ); while ( (line = f.ReadLine()) != undefined) { Message(line); } f.Close(); The following simple example shows how to write the numbers 1 to 10 to the file "/data/test/file.txt": var n, line; f = new File("/data/test/file.txt", File.WRITE); for (n=1; n<=10; n++) { f.Writeln(n); } f.Close(); See the documentation below for more details. Constructor [constant] new File(filename ) , mode [string] Description Create a new object for reading and writing text files. F i l e Arguments Name Type Description string filename Filename of the file you want to read/write. If reading, the file must exist. If writing, the file will be overwritten (if it exists) if mode is File.WRITE, or if mode is File.APPEND it will be appended to if it exists, or created if it does not. When reading a file the filename can also be a URL (uniform resource locator) in which case the F file will be read from the remote site. See . G e i ( ) for more details on the format of the URL. l e t The mode to open the file with. Can be F i l e . R E A D , F i l e . W R I T E or F i l e . A P P E N D . For mode constant N l . W R I T E or F i l e . A P P E N D it can also be ORed with F i l e . B I e A R Y if required. By default text F i 8 i . U T F e if is read and written as ASCII. To read/write text in utf-8 mode can also be ORed with l F required. Return type l e object F i Example To create a new file object to read file "/data/test/file.txt" var f = new File("/data/test/file.txt", File.READ); Page J.54

401 User manual Version 15.0, May 2018 T/HIS Details of functions Close() Description e object. i l Close a file opened by a F Arguments No arguments Return type No return value Example To close F object f. l i e f.Close(); [string] , dest [string] ) [static] Copy(source Description Copies a file Arguments Description Name Type Source filename you want to copy. string source string Destination filename you want to copy source file to. dest Return type true if copy successful, false otherwise. Example To copy the file "/data/test/file.key" to "/data/test/file.key_backup" var copied = File.Copy("/data/test/file.key", "/data/test/file.key_backup"); Delete(filename ) [static] [string] Description Deletes a file Arguments Description Name Type string Filename you want to delete. filename Return type true if successful, false if not. Example To delete the file "/data/test/file.key" var deleted = File.Delete("/data/test/file.key"); Page J.55

402 T/HIS User manual Version 15.0, May 2018 [string] Exists(filename ) [static] Description ) e . I s D i r e c t o r y ( ) and See also F i l e . I s F i l F ( l . i Check if a file exists. See also e Arguments Type Name Description Filename you want to check for existance. filename string Return type true/false Example To see if the file "/data/test/file.key" exists if (File.Exists("/data/test/file.key")) { do something } [constant] ) [static] FindFiles(directory [string] , type (optional) Description Find any files and/or directories in a directory. Arguments Name Type Description directory string Directory to look for files/directories in. constant Type of things to find. Can be bitwise OR of F i l type . F I L E and F i l e . D I R E C T O R Y . If omitted e only files will be returned. (optional) Return type Array of filenames/directories Example To return the filenames in the directory /data/test: var fileList = File.FindFiles("/data/test") To return the directories in the directory /data/test: var fileList = File.FindFiles("/data/test", File.DIRECTORY) To return the files and directories in the directory /data/test: var fileList = File.FindFiles("/data/test", File.FILE|File.DIRECTORY) [string] FindLineContaining(contain1 [string] , ... containn [string] , contain2 (optional) , contain3 (optional) ) [string] (optional) Description , opened for reading by a F i l e object. Although this is possible using Reads a line from a file which contains contain core JavaScript functions this function should be significantly faster as most of the processing is done by Primer in C rather than in the JavaScript interpreter. To enable this function to be as fast as possible a maximum line length of 512 L a d L o n g R i n e which allows characters is used. If you expect a file to have lines longer than 512 characters then use e lines of any length. If one argument is used then the line must contain that string. If more than one argument is used then lines which contain the string contain1 OR contain2 OR contain3 etc will be returned Page J.56

403 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type contain1 string String which matching lines must contain contain2 (optional) string alternative string which matching lines must contain string contain3 (optional) alternative string which matching lines must contain ... containn (optional) string alternative string which matching lines must contain Return type undefined string read from file or if end of file Example Loop, reading lines from F object f which contain ’example’. i l e var line; while ( (line = file.FindLineContaining("example") ) != undefined) { } [string] [string] , ... startn (optional) [string] ) FindLineStarting(start1 , start3 (optional) [string] , start2 (optional) Description l e object. Although this is possible using core F Reads a line from a file which starts with start, opened for reading by a i JavaScript functions this function should be significantly faster as most of the processing is done by Primer in C rather than in the JavaScript interpreter. To enable this function to be as fast as possible a maximum line length of 512 e a d L o n g L i n e which allows characters is used. If you expect a file to have lines longer than 512 characters then use R lines of any length. If one argument is used then the line must start with that string. If more than one argument is used then lines which start with start1 OR start2 OR start3 etc will be returned Arguments Type Description Name start1 String which matching lines must start with string start2 (optional) string alternative string which matching lines must start with start3 (optional) string alternative string which matching lines must start with alternative string which matching lines must start with ... startn (optional) string Return type string read from file or undefined if end of file Example i l e object f which start ’example’. Loop, reading lines from F var line; while ( (line = file.FindLineStarting("example") ) != undefined) { } Flush() Description i l e object. Flushes a file opened for writing by a F Page J.57

404 T/HIS User manual Version 15.0, May 2018 Arguments No arguments Return type No return value Example e F l To flush i object f. f.Flush(); [string] , options (optional) [object] ) [static] Get(url , filename [string] Description i l e . P r o x y ( ) , F i l e . P r o x y P a s s w o r d ( ) and F i l e . P r o x y U s e r n a m e ( ) . Get a file from a remote location. See also F Arguments Type Name Description url string URL (uniform resource locator) of remote file you want to get. Currently http and ftp are supported. For http give the full address including the leading ’http://’. e.g. ’http://www.example.com/file.html’. For ftp an optional username and password can be given. e.g. ’ftp://ftp.example.com’ retrieves the directory listing for the root directory. ’ftp://ftp.example.com/readme.txt’ downloads the file readme.txt from the root directory. ’ftp://user:/readme.txt’ retrieves the readme.txt file from the user’s home directory. filename string Filename you want to save the file to. Options for get. Currently the only available properties are ’username’ (string), ’password’ (string) object options and ’response’ (boolean). If ’username’ and ’password’ are set then basic authorization using the (optional) username and password will be used. If ’response’ is used and is true then the response code will be returned instead of true/false. This can be used to retrieve error messages and codes when the file is not returned successfully. Return type true if file was successfully got, false otherwise. Example To get the file "http://www.example.com/file.html" and save it to C:\temp: File.Get("http://www.example.com/file.html", "C:\temp\file.html"); [string] ) [static] IsAbsolute(filename Description Check if a filename is absolute or relative. Arguments Description Name Type Filename you want to check. string filename Return type true/false Page J.58

405 User manual Version 15.0, May 2018 T/HIS Example To see if the filename "/data/test" is absolute (which it is!) if (File.IsAbsolute("/data/test")) { do something } [string] ) [static] IsDirectory(filename Description Check if a filename is a directory. See also F . E x i s t s ( ) , F i l e . I s F i l e ( ) , F i l e . I s R e a d i b l e ( ) and F i l e . I s W r i t a b l e ( ) . l e a Arguments Type Name Description Filename you want to check. filename string Return type true/false Example To see if the filename "/data/test" is a directory if (File.IsDirectory("/data/test")) { do something } ) [static] IsFile(filename [string] Description i l e . E x i s t s ( ) , F i l e . I s D i r e c t o r y ( ) , F i l e . I s R e a d a b l e ( ) and F i l e . I s W r i t a b l e ( ) . Check if a filename is a file. See also F Arguments Type Name Description filename string Filename you want to check. Return type true/false Example To see if the filename "/data/test" is a file if (File.IsFile("/data/test")) { do something } ) [static] IsReadable(filename [string] Description i l e . E x i s t s ( ) , F i l e . I s D i r e c t o r y ( ) and F i l e . I s W r i t a b l e ( ) . Check if a filename has read permissions. See also F Arguments Type Description Name filename string Filename you want to check. Return type true/false Page J.59

406 T/HIS User manual Version 15.0, May 2018 Example To see if the filename "/data/test" is readable if (File.IsReadable("/data/test")) { do something } [string] ) [static] IsWritable(filename Description exists and it is a file then it is checked to see if it can be opened filename Check if a filename has write permissions. If with write (File.APPEND permissions). If filename exists and it is a directory then the directory is checked for write permission (can files be created in the directory). If filename does not exist then it is assumed to be a file and is checked l e . E x i s t s to see if it can be opened for writing (File.WRITE permissions). See also ) , F i l e . I s D i r e c t o r y ( ) and F i ( l e . I s R e a d a b l e ( ) . F i Arguments Type Name Description filename string Filename you want to check. Return type true/false Example To see if the filename "/data/test" is writable if (File.IsWritable("/data/test")) { do something } [string] Mkdir(directory ) [static] Description Make a directory. Arguments Description Name Type The name of the directory you want to create. directory string Return type true if successfully created, false if not. Example To make the directory "/data/test" var success = File.Mkdir("/data/test"); Mktemp() [static] Description Make a temporary filename for writing a temporary file. Arguments No arguments Return type String name of temporary filename that can be used. Page J.60

407 User manual Version 15.0, May 2018 T/HIS Example To get a temp filename" var filename = File.Mktemp(); [string] ) [static] Proxy(name Description Set a proxy for files opened by http, ftp etc. See also F . G e t ( ) , F i l e . P r o x y P a s s w o r d ( ) and F i i e . P r o x y U s e r n a m e ( ) . l e l Arguments Type Name Description The name of the proxy. name string Return type No return value Example To set the proxy to "http://example.proxy.com" using port 80: File.Proxy("http://example.proxy.com:80"); ) [static] ProxyPassword(name [string] Description i l e . G e t ( ) , F i l e . P r o x y ( ) and F i l e . P r o x y U s e r n a m e ( ) . Set a proxy password for files opened by http, ftp etc. See also F Arguments Type Name Description name string Password for the proxy server. Return type No return value Example To set the proxy password to "password": File.ProxyPassword("password"); ) [static] ProxyUsername(username [string] Description i l e . G e t ( ) , F i l e . P r o x y ( ) and F i l e . P r o x y P a s s w o r d ( ) . Set a proxy username for files opened by http, ftp etc. See also F Arguments Type Description Name username string The username for the proxy. Return type No return value Page J.61

408 T/HIS User manual Version 15.0, May 2018 Example To set the proxy username to "username": File.ProxyUsername("username"); ReadAll() Description F Reads the remaining characters from a file opened for reading by a all object. As this function can read the entire l i e file as a string be careful when reading large files as it will consume large amounts of memory. Arguments No arguments Return type characters read from file or undefined if end of file Example object f. i l e F Read all characters from var c = f.ReadAll(); [integer] ) ReadArrayBuffer(length (optional) Description l object. The data is returned as an A r r a y B e f f e r object. For i F Reads binary data from a file opened for reading by a u r a y B u f f e r see the following links: more details on how to use an A r n p : / / d e v e l o p e r . m o z i l l a . o r g / e s / J a v a S c r i p t _ t y p e d _ a r r a y s t t h t p s : / / d e v e l o p e r . m o z i l l a . o r g / e n / J a v a S c r i p t _ t y p e d _ a r r a y s / A r r a y B u f f e r h t r t : / / d e v e l o p e r . m o z i l l a . o r g / e n / J a v a S c s i p t _ t y p e d _ a r r a y s / A r r a y B u f f e r V i e w p h t t p s : / / d e v e l o p e r . m o z i l l a . o r g / e n / J a v a S c r i p t _ t y p e d _ a r r a y s / D a t a V i e w . h t Arguments Type Description Name length integer Number of bytes to try to read from the file. If omitted all the remaining data from the file (optional) will be read. Return type r a y B u f f e r object or undefined if end of file A r Example F l e object f. i To read data as 32bit unsigned integers from var ab = f.ReadArrayBuffer(); var u32 = new Uint32Array(ab); for (var i=0; i

409 User manual Version 15.0, May 2018 T/HIS [string] , comment (optional) [string] ) [static] ReadCSV(filename [string] , delimiter (optional) Description Reads the input CSV file and returns an array of string arrays. If the CSV file has legitimate records the function returns an Array object containing sub-arrays of strings otherwise the function returns NULL. The lengths of all the sub-arrays are the same and equal to maximum number of fields in any of the records. For records in a CSV file having fewer fields, the respective sub-arrays are padded with NULL elements to the maximum array length. Arguments Name Type Description filename string Filename you want to read CSV options from. delimiter (optional) string Delimiter string to be used. Default is a comma (","). comment (optional) Comment string to be used. Default is a dollar sign ("$"). string Return type Array object containing string arrays. Example To Read CSV file "sample.csv" and print all records to a Window. var csv_file_path = "C:\\sample.csv"; var records = ""; if(!File.Exists(csv_file_path)) { Window.Information("CSV file %s not present", csv_file_path); Exit(); } var csv_array = File.ReadCSV(csv_file_path); if(csv_array != null) { for(var i = 0; i < csv_array.length; i++) { var record_array = csv_array[i]; for(var j = 0; j < record_array.length; j++) { if(record_array[j] != null) records = records + record_array[j] + " , "; } records = records + "\n"; } } Options.max_window_lines = csv_array.length; Window.Information("File.ReadCSV Ouptut", records); To Read CSV file "sample.csv" with delimiter string "::" and comment string "##". var csv_array = File.ReadCSV(csv_file_path, "::", "##"); ReadChar() Description i l e object. Reads a single character from a file opened for reading by a F Arguments No arguments Page J.63

410 T/HIS User manual Version 15.0, May 2018 Return type character read from file or undefined if end of file Example e object f. i l F Loop, reading characters from var c; while ( (c = f.ReadChar()) != undefined) { ... } ReadLine() Description e object. To enable this function to be as fast as possible a maximum F Reads a line from a file opened for reading by a l i line length of 512 characters is used. If you expect a file to have lines longer than 512 characters then use d L o n g L i n e which allows lines of any length. e R a Arguments No arguments Return type string read from file or undefined if end of file Example Loop, reading lines from F e l i object f. var line; while ( (line = f.ReadLine()) != undefined) { ... } ReadLongLine() Description Reads a line from a file opened for reading by a F l e object. The line can be any length. If your file has lines shorter i e a d L i n e instead which is faster. than 512 characters then you may want to use R Arguments No arguments Return type string read from file or undefined if end of file Example i l e object f. Loop, reading lines from F var line; while ( (line = f.ReadLongLine()) != undefined) { ... } Page J.64

411 User manual Version 15.0, May 2018 T/HIS [string] ) [static] [string] Rename(oldname , newname Description Rename an existing file to have a different name. Arguments Type Name Description oldname string Existing filename you want to rename string newname New filename you want to rename to Return type true if successful, false if not. Example To rename the file "/data/test/file.key" to "/data/test/new_file.key" var size = File.Rename("/data/test/file.key", "/data/test/new_file.key"); [constant] Seek(offset [integer] , origin (optional) ) Description l e object. F Set the current position for reading or writing in a i Arguments Description Name Type offset integer Offset to seek to in the file constant Origin for offset. Must be one of F i l e . S T A R T , F i l e . E N D origin F i l e . C U R R E N T . If omitted or i F . S T A R T will be used. (optional) l e Return type no return value Example To seek to the end of F i l e f: f.Seek(0, File.END); i l e f: To seek to the beginning of F f.Seek(0, File.START); e f: i l F To move forward 10 characters in f.Seek(10, File.CURRENT); ) [static] Size(filename [string] Description Return the size of a file in bytes Arguments Type Description Name filename string Filename you want the size of. Page J.65

412 T/HIS User manual Version 15.0, May 2018 Return type size in bytes Example To get the size of the file "/data/test/file.key" var size = File.Size("/data/test/file.key"); Tell() Description i l object. Note that on Windows when reading files if the file is not opened with F Return the current file position for a e e . B I N A R Y this may not return the correct file position for files with unix line endings. F i l Arguments No arguments Return type integer Example To get the current file position for F i e f: l var pos = f.Tell(); Upload(filename , options (optional) [object] ) [static] [string] , url [string] Description i l e . P r o x y ( ) , F i l e . P r o x y P a s s w o r d ( ) and F i l e . P r o x y U s e r n a m e ( ) . Uploads a file to a remote location. See also F Arguments Type Name Description filename string Filename you want to upload. url URL (uniform resource locator) of the remote location you want to upload the file to. Currently string only http is supported. Give the full address including the leading ’http://’. e.g. ’http://www.example.com/file.html’. Options for upload. Currently the only available properties are ’username’ and ’password’. If both options object of these are set then basic authorization using the username and password will be used. (optional) Return type true if file was successfully uploaded, false otherwise. Example To upload the file "C:\temp\file.txt" to "http://www.example.com/file.txt": File.Upload("C:/temp/file.txt", "http://www.example.com/file.txt"); Write(string ) [Any valid javascript type] Description Write a string to a file opened for writing by a F e object. Note that a carriage return is not added . i l Page J.66

413 User manual Version 15.0, May 2018 T/HIS Arguments Name Type Description string Any valid javascript type The string/item that you want to write Return type No return value Example object f i F e To write string "Hello, world!" to l f.Write("Hello, world!\n"); e l object f i F To write the title of model m to f.Write("The title of model 2 is " + m.title + "\n"); a y B u WriteArrayBuffer(buffer f e r ] , length (optional) [integer] ) [ A r r f Description e i A r r a y B u f f e r object. For more Writes binary data to a file opened for writing by a object. The data to write is an F l e a B u f f y r see the following links: r r details on how to use an A p s : / / d e v e l o p e r . m o z i l l a . o r g t e n / J a v a S c r i p t _ t y p e d _ a r r a y s t / h p s : / / d e v e l o p e r . m o z i l l a . o r g / e n / J a v t S c r i p t _ t y p e d _ a r r a y s / A r r a y B u f f e r h t a t p s : / / d e v e l o p e r . m o z i l l a . o r g / e n / J a v a S c r i p t _ t y p e d _ a r r a y s / A r r a y B u f f e r V i e w h t c t : / / d e v e l o p e r . m o z i l l a . o r g / e n / J a v a S s r i p t _ t y p e d _ a r r a y s / D a t a V i e w . h p t Arguments Type Description Name r r a y B u f f e r A r r a y B u f f e r to write to file buffer A e integer r r a y B u f f A r will be length Number of bytes to write to the file. If omitted all the data in the written (buffer.byteLength bytes) (optional) Return type No return value Example r r a y B u f f e r ab to F i l e object f. To write A f.WriteArrayBuffer(ab); [Any valid javascript type] Writeln(string ) Description i l object adding a carriage return . F Write a string to a file opened for writing by a e Arguments Description Type Name string Any valid javascript type The string/item that you want to write Return type No return value Page J.67

414 User manual Version 15.0, May 2018 T/HIS Example F i l e object f automatically adding a carriage return To write string "Hello, world!" to f.Writeln("Hello, world!"); i l e object f automatically adding a carriage return To write the title of model m to F f.Writeln("The title of model 2 is " + m.title); Page J.68

415 User manual Version 15.0, May 2018 T/HIS Graph class r The Graph class gives you access to graphs in T/HIS. . . e o M . Class functions o a l () T • t Graph properties Type Name Description id Graph ID (read only) integer Detailed Description The Graph class contains information on the number of graphs. See the documentation below for more details. Constructor [integer] ) new Graph(index Description r a p h . Create a new G Arguments Type Name Description integer index Graph index to copy initial display and axis settings from (optional). If not defined then the display and axis settings will be copied from those defined in the preference file. Return type p r object a h G Example To create a new graph and copy all of the setting from graph 2 var l = new Graph(2); Details of functions Total() [static] Description Returns the total number of graphs. Arguments No arguments Return type integer Example To find how many graphs there are in T/HIS: var num = Graph.Total(); Page J.69

416 T/HIS User manual Version 15.0, May 2018 Group class r The Group class gives you access to groups in T/HIS. . . e o M . Class functions t ) • G (Name e [string] [integer] r F I D (ID o ) t e G • m • l () T o t a Member functions (Curve [ C u r d e ] ) A • d v d A l l () • A d d A D (ID [integer] ) • d I r n i n s (Curve [ C u a v e ] ) o t • C n t a i • s I D (ID [integer] ) C o n e C u r v e t D s () G • I e t C u r v e s () • G e R v e (Curve [ C u r v e ] ) • m o l m e A l v () e o • R m o v e I D (ID [integer] • R e ) p o l () • S o p o l I D () S • o t a r t S p o o l () • S Group properties Type Name Description Number of curves in the group (read only) integer curves string name Group name (read only) Detailed Description The Group class allows you to create, and modify groups. See the documentation below for more details. Constructor new Group(name ) [string] Description o u p object. G Create a new r Arguments Type Description Name Group name used to reference the group name string Return type r p object u o G Example To create a new group with the name X-Velocity var l = new Group("X-velocity"); Details of functions C u r v e ] ) Add(Curve [ Description Adds a curve object to group. Page J.70

417 User manual Version 15.0, May 2018 T/HIS Arguments Name Type Description v e C u r u e that will be added to group C Curve r v Return type No return value. Example To add curve c to curve group g: g.Add(c); AddAll() Description Adds all curves to group. Arguments No arguments Return type No return value. Example To add all curves to curve group g: g.AddAll(); ) AddID(ID [integer] Description Adds curve by ID to a group. Arguments Type Description Name ID The ID of the curve you want to add. integer Return type No return value. Example To add curve 3 to curve group g: g.AddID(3); C u r v e ] ) Contains(Curve [ Description Checks if a curve object is in a curve group. Page J.71

418 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type v e C u r u e that will be checked Curve r C v Return type TRUE if the curve is in the group, otherwise FALSE Example To check if a curve object n is in group g var exists = g.Contains(n); ContainsID(ID ) [integer] Description Checks if a curve ID is in a curve group. Arguments Type Description Name The ID of the curve you want to check. ID integer Return type TRUE if the curve is in the group, otherwise FALSE Example To check if a curve ID n is in group g var exists = g.ContainsID(n); [string] ) [static] Get(Name Description Returns a group object. Arguments Description Type Name Name of the group to return object for Name string Return type Group object (or Null if the group does not exist). Example To get the group called ’left’ var group = Group.Get("left"); GetCurveIDs() Description Returns an array of Curve ID’s for all the Curves in the group. Page J.72

419 User manual Version 15.0, May 2018 T/HIS Arguments No arguments Return type Array of Curve ID’s. Example To make an array of Curve ID’s for all the curves in group g: var curves = g.GetCurveIDs(); GetCurves() Description Returns an array of Curve Objects for all the Curves in the group. Arguments No arguments Return type Array of Curve objects. Example To make an array of Curve objects for all the curves in group g: var curves = g.GetCurves(); [integer] GetFromID(ID ) [static] Description Returns a group object. Arguments Name Description Type ID integer ID of the group to return object for Return type Group object (or Null if the group does not exist). Example To get the group number 1 var group = Group.GetFromID(1); [ r v e ] ) Remove(Curve u C Description Removes a curve object from a group. Arguments Name Type Description u r v e C u r v e that will be removed from group Curve C Page J.73

420 T/HIS User manual Version 15.0, May 2018 Return type No return value. Example To remove curve c from curve group g: g.Remove(c); RemoveAll() Description Removes all curves from a group. Arguments No arguments Return type No return value. Example To remove all curves from curve group g: g.RemoveAll(); RemoveID(ID [integer] ) Description Remove a curve by from a group. Arguments Name Description Type integer ID The ID of the curve you want to remove. Return type No return value. Example To remove curve 3 from curve group g: g.RemoveID(3); Spool() Description r o u p . S t a r t S p o o l Spools a group, entry by entry and returns the curve objects. See also G Arguments No arguments Return type Curve Object of item, or NULL if no more curves in group Page J.74

421 User manual Version 15.0, May 2018 T/HIS Example To spool group g: var id; g.StartSpool(); while (id = g.Spool() ) { do something... } SpoolID() Description o u p . S t a r Spools a group, entry by entry and returns the curve ID’s. See also S p o o l G r t Arguments No arguments Return type Curve ID, or 0 if no more curves in group Example To spool group g : var id; g.StartSpool(); while (id = g.SpoolID() ) { do something... } StartSpool() Description p u p . G r o o l Starts a group spooling operation. See also o S Arguments No arguments Return type No return value Example To start spooling group g: g.StartSpool(); Total() [static] Description Returns the total number of curve group currently defined Arguments No arguments Return type Number of curve groups currently defined. Page J.75

422 T/HIS User manual Version 15.0, May 2018 Example To get the number of curve groups var total = Group.Total(); Page J.76

423 User manual Version 15.0, May 2018 T/HIS LineStyle class r . . . M e o The LineStyle class contains constants relating to the curve line style. LineStyle constants Name Description Dashes lines LineStyle.DASH LineStyle.DASH2 Dash pattern 2 LineStyle.DASH3 Dash pattern 3 LineStyle.DASH4 Dash pattern 4 LineStyle.DASH5 Dash pattern 5 LineStyle.DASH6 Dash pattern 6 LineStyle.NONE No line LineStyle.SOLID Solid lines Detailed Description The LineStyle class is used to define the line style used to draw curves: p.style = LineStyle.SOLID; Page J.77

424 T/HIS User manual Version 15.0, May 2018 LineWidth class r . . . M e o The LineWidth class contains constants relating to the curve line width. LineWidth constants Description Name LineWidth.BOLD Bold lines (4 pixels wide) Fine lines (1 pixel wide) LineWidth.FINE LineWidth.HEAVY Heavy lines (8 pixels wide) LineWidth.NORMAL Normal lines (2 pixels wide) Detailed Description The LineWidth class is used to define the line width used to draw curves: p.width = LineWidth.NORMAL; Page J.78

425 User manual Version 15.0, May 2018 T/HIS Model class r The Model class gives you access to models in T/HIS. . . o e M . Class functions i s (model number [integer] ) • E s x t ) r I D (model number [integer] m F • G o e t e s t I D () • H i g h (filename e , filetype (optional) [integer] ) • R a d [string] l () t o T • a Member functions a r F l a g (flag [ F • a g ] , entity_type [ E n t i t y T y p e ] , item [integer] , end (optional) [integer] ) C l e l l t e () • D e e n g l l (flag [ F l a g a , entity_type [ E A t i t y T y p e ] ) l F • ] a g g e d (flag [ F l a g ] , entity_type [ E n t i t y T y p e ] , item [integer] ) • l F e D a t a F l a g g e d (flag [ F l a g ] , data_comp [ D a t a C o m p o n e n t ] , int_pnt (optional) [integer or object] , extra • G t ) (optional) [integer] ) I n t e • n a l I D (entity_type [ E n t i t y T y p e ] , item [integer] G e t r e L a b e l (entity_type [ E n t i t y T y p e ] , item [integer] ) G • t e t L a b e l F r o m N a m e (entity_type [ E n t i t y T y p e ] , name [string] ) • G e G a m e (entity_type [ E n t i t y T y p e ] , item [integer] ) • t N e t u m b e r F l a g g e d (flag [ F l a g e , entity_type (optional) [ E n t i t y T y p N ] ) • G ] e N u m b e r O f (entity_type [ E t t i t y T y p e ] ) G • n u e r y D a t a P r e s e n t (data_comp [ D a t a C o m p o n e n t ] , entity_type (optional) [ E n t i t y T y p e ] , int_pnt (optional) [integer • Q [integer] , extra (optional) or object] ) t t l a g (flag [ F l a g ] , entity_type [ • n F i t y T y p e ] , item [integer] , end (optional) [integer] ) e S E n f l a g A l l (flag [ F l a g ] , entity_type [ E n t i t y T y p e ] ) • U Model constants Description Name Model.ALL_FILES Option to select all files (.thf, LSDA, ASCII, .ztf) when reading model in. Model.ASCII Option to select ASCII files when reading model in. Option to select LSDA/binout file when reading model in. Model.LSDA Model.THF Option to select .thf/d3thdt file when reading model in. Model.XTF Option to select .xtf/xtfile file when reading model in. Model.ZTF Option to select .ztf file when reading model in. Model properties Description Name Type string dir Directory containing the model file (read only). File selected when reading the model (read only). file string id Model ID (read only) integer title string Model title (read only). Detailed Description The Model class contains information on filenames and directories belonging to a model. See the documentation below for more details. Details of functions T l a g ] , entity_type [ E n t i t y F y p e ] , item [integer] , end (optional) [integer] ) [ ClearFlag(flag Description Clears a defined flag on an internal (or external) item(s) of type of entity_type in the model. Page J.79

426 T/HIS User manual Version 15.0, May 2018 Arguments Description Name Type flag l a g The flag you want to clear. F t i t y The entity type that the defined flag will be cleared on. entity_type E n e p T y item integer If +ive: The internal item number starting from 1. If -ive: The external item label. end integer To unflag range of items, specify an optional end of range. Unflags items from item to (optional) range. Return type TRUE if the flag is successfully cleared on the item, otherwise FALSE Example To clear the flag f on the 6th node in model m: m.ClearFlag(f, Entity.NODE, 6); To clear the flag f on the Node 13456 in model m: m.ClearFlag(f, Entity.NODE, -13456); To clear the flag f on the first 10 nodes in model m: m.ClearFlag(f, Entity.NODE, 1, 10); To clear the flag f on nodes with labels 1000, 1001, 1002, ..., 1009 in model m: m.ClearFlag(f, Entity.NODE, -1000, -1009); Delete() Description Deletes a model Do not use the Model object after calling this method . Arguments No arguments Return type TRUE if the model sucessfully deleted, otherwise FALSE Example To delete model m: var deleted = m.Delete(); ) [static] Exists(model number [integer] Description Checks if a model exists Arguments Type Description Name The number of the model you want to check the existence of. model number integer Return type TRUE if the model exists, otherwise FALSE Page J.80

427 User manual Version 15.0, May 2018 T/HIS Example To check if a model n exists var exists = Model.Exists(n); a g ] , entity_type [ E n t i t y l y p e ] ) FlagAll(flag F [ T Description Sets a defined flag on all of items of type of entity_type in the model. Arguments Name Type Description a flag The flag you want to set. F l g The entity type that the defined flag will be set on. t t y T n p e i entity_type E y Return type TRUE if the flag is successfully set on all the items, otherwise FALSE Example To set the flag f on all the nodes in model m: m.FlagAll(f, Entity.NODE); F l a g ] , entity_type [ E n t i t y T y p e ] , item [integer] ) Flagged(flag [ Description Checks if a defined flag is set on an internal (or external) item of type of entity_type in the model. Arguments Type Name Description flag F l g The flag you want to check. a n t i t y T y p e The entity type to check. entity_type E If +ive: The internal item number starting from 1. If -ive: The external item label. item integer Return type TRUE if the flag is set, FALSE if the flag is not set. Example To check if flag f is set on the 6th node in model m: m.Flagged(f, Entity.NODE, 6); To check if flag f is set on the Node 13456 in model m: m.Flagged(f, Entity.NODE, -13456); Page J.81

428 T/HIS User manual Version 15.0, May 2018 l a g ] , data_comp [ D a t a C o m p o n e n t ] , int_pnt (optional) [integer or object] , extra GetDataFlagged(flag [ F [integer] (optional) ) Description Gets curve objects for a data component for relevant items that are flagged with a specified flag in the model. Some data components are valid for different entity types (e.g. SXX). If the same flag is set on items of different entity types, data is returned for all relevant, flagged entity types. To return the same data for multiple items of the same type, it will be much faster if you flag all items you want data for, and do a single call to GetDataFlagged(). Arguments Type Description Name g The flag to use. For model data, use 0 to define a null "padding" argument. flag F l a a t The data component to extract. a D data_comp o n e n t C o m p integer or int_pnt The integration points to extract. This argument is ignored when the entity type is not object SOLID, SHELL, THICK_SHELL or BEAM. (optional) An integer specifies the integration point to extract: For SOLIDs: value between 0 for Average/Centre and 8. (Defaults to Average/Centre). For SHELLs and THICK_SHELLs: value between 1 and # integration points, or codes TOP, MIDDLE, BOTTOM. (Defaults to MIDDLE integration point). For integrated BEAMs: value between 1 and # integration points. (Defaults to integration point 1). can specify: An object {ip:1, op:2, np:3} : The integration point. As described above. ip • • : The on-plan integration point. For SHELLs and THICK_SHELLs: value op between 0 for Average/Centre and 4. (Defaults to Average/Centre). • np : The nodes to extrapolate to. For SOLIDs, SHELLs and THICK_SHELLs: value between 1 and # nodes on the entity. (Defaults to none). Not all of the arguments in the object need to be provided. Use 0 to define a null "padding" argument, then uses the default integration extra integer The extra component id for SOLIDs, SHELLs, THICK_SHELLs or BEAMs. (optional) Return type e e u b j v c t s . r o Array of c u c e p r o p e r t i e s to identify The curves are ordered by type, then by the ascending internal index of the items. Use r v which curve is which. If the data is not available in the model for a flagged item, or not available for the selected e integration points or extra value, a curve is not returned. r y D a t a P r Q s e n t ( ) to check if the data is You can use u e available. It is recommended that you check the number of curves returned. This can be compared with the number of flagged g e u m b e r F l a N g e d ( ) . t entities, see G If the data is generally available in the model, but not for the specific flagged item, a "null curve" which contains For example, a specific shell may have fewer integration points than MAX_INT for all no x-y data values is returned. shells, a " l l c u r v e " would be returned for the higher integration points. n u Page J.82

429 User manual Version 15.0, May 2018 T/HIS Example To get X direct stress for flagged SOLIDs, SHELLs and THICK_SHELLs with flag f in model m: var cur_array = m.GetDataFlagged(f, Component.SXX); To get X direct stress at top integration point for flagged SHELLs and THICK_SHELLs with flag f in model m: var cur_array = m.GetDataFlagged(f, Component.SXX, TOP); To get X direct stress at top integration point, and on-plan integration point 3 for flagged SHELLs and THICK_SHELLs with flag f in model m: var cur_array = m.GetDataFlagged(f, Component.SXX, {ip:TOP, op:3}); To get extra beam data 3 for flagged BEAMs with flag f in model m: var cur_array = m.GetDataFlagged(f, Component.BEX, 0, 3); To get the total mass in model m: var cur_array = m.GetDataFlagged(0, Component.GMASS); GetFromID(model number [integer] ) [static] Description Returns the Model object for a model ID or null if model does not exist. Arguments Description Name Type model number number of the model you want the Model object for integer Return type Model object (or null if model does not exist). Example To get the model n var model = Model.GetFromID(n); E n t i t y T y p e ] , item [integer] ) GetInternalID(entity_type [ Description Gets the internal ID of external item of type entity_type in the model. Arguments Type Description Name n t i t y T y p e The entity type of the item. entity_type E The external item number. integer item Return type Integer internal ID (starting from 1) with reference to the entity_type code. Example To get the internal ID of Airbag 300 in model m: var x = m.GetInternalID(Entity.AIRBAG, 300); Page J.83

430 T/HIS User manual Version 15.0, May 2018 n t i t y T y p e ] , item [integer] ) GetLabel(entity_type [ E Description Gets the external label of internal item of type entity_type in the model. Arguments Name Description Type t i t y T y p e The entity type of the item. entity_type E n The internal item number starting from 1. item integer Return type Integer external ID (or 0 if there is an error, or the internal ID if there are no external IDs). Example To get the external ID of the 2nd airbag in model m: var x = m.GetLabel(Entity.AIRBAG, 2); n t i t y T GetLabelFromName(entity_type p e ] , name [string] ) [ E y Description Gets the external label from the database history name name of type entity_type in the model. This is quicker if you use parent entity type codes (e.g. Entity.WELD rather than Entity.WELD_CONSTRAINED) Arguments Description Name Type n E t y T y p e The entity type of the item. entity_type i t The name of the item. If only the first part of the name is given, it must be unambiguous. name string Return type Integer external ID of the first matching name (or 0 if there is an error). Example To get the external label the of Contact named "Rear Bolt" in database history: var name = m.GetName(Entity.CONTACT, "Rear Bolt"); E n t i t y T y p e ] , item [integer] ) GetName(entity_type [ Description Gets the database history name of an internal (or external) item of type entity_type in the model. Arguments Type Description Name n t i t y T y p e The entity type of the item. entity_type E If +ive: The internal item number starting from 1. If -ive: The external item label. integer item Return type String containing the database history name (or null if not available). Page J.84

431 User manual Version 15.0, May 2018 T/HIS Example To get the database history name of the 2nd airbag in model m: var name = m.GetName(Entity.AIRBAG, 2); To get the database history name of Airbag 300 in model m: var name = m.GetName(Entity.AIRBAG, -300); T a ] , entity_type (optional) [ E n t i [ y g y p e ] ) GetNumberFlagged(flag l F t Description Gets the number of entities flagged with a requested flag in the model. Arguments Description Name Type a The flag you want to check. flag g F l t i t entity_type (optional) T y p e If specified, the entity type to look at. If not specified, all types are looked at. E n y Return type Integer number Example To get the number of airbag parts flagged with flag f in model m: var num = m.GetNumberFlagged(f, Entity.AIRBAG_PART); ) n i t y T y p [ ] t E GetNumberOf(entity_type e Description Gets the number of entities of a requested type in the model. Arguments Name Type Description n t i t y T y p e The entity type that you want to know the number of. entity_type E Return type Integer number Example To get the number of airbags in model m: var num = m.GetNumberOf(Entity.AIRBAG); HighestID() [static] Description Returns the ID of the highest model currently being used Arguments No arguments Return type ID of highest model currently being used. Page J.85

432 T/HIS User manual Version 15.0, May 2018 Example To get the highest model ID var id= Model.HighestID(); t a C o m p o n e n t ] , entity_type (optional) [ a n t i t y T y p e ] , int_pnt [ D QueryDataPresent(data_comp E [integer] ) (optional) , extra (optional) [integer or object] Description Checks if a data component data_comp for a given entity is present in a model’s database. For SOLIDs, SHELLs, THICK_SHELLs and BEAMs the integration point and extra component ID can also be checked. This will show if e t a t a F l a curves for any flagged items of this type will be returned for g D d ( ) . Note, it does not check if the data G e g , for example a specific shell may have fewer integration points than MAX_INT for all shells, so valid component is e t D a t a F l a g g e d ( ) may still be "null" with no x-y data. curves returned for G Arguments Type Name Description t a a data_comp D The data component to check. n C n t o p m o e n E i t y T y p e The entity type to check. This argument can only be omitted when checking for entity_type t global model data. (optional) int_pnt integer or The integration points to check. This argument is ignored if the entity type is not SOLID, SHELL, THICK_SHELL or BEAM. object (optional) specifies the integration point to check: integer An For SOLIDs: value between 0 for Average/Centre and 8. (Defaults to Average/Centre). For SHELLs and THICK_SHELLs: value between 1 and # integration points, or codes TOP, MIDDLE, BOTTOM. (Defaults to MIDDLE integration point). For integrated BEAMs: value between 1 and # integration points. (Defaults to integration point 1). An object {ip:1, op:2, np:3} can specify: • : The integration point. As described above. ip : The on-plan integration point. For SHELLs and THICK_SHELLs: value op • between 0 for Average/Centre and 4. (Defaults to Average/Centre). : The nodes to extrapolate to. For SOLIDs, SHELLs and THICK_SHELLs: • np value between 1 and # nodes on the entity. (Defaults to none). Not all of the arguments in the object need to be provided. If multiple arguements are provided, QueryDataPresent() will only return JS_TRUE if all curves are valid. Use 0 to define a null "padding" argument, then checks the default integration The extra component id for SOLIDs, SHELLs, THICK_SHELLs or BEAMs. extra (optional) integer Return type JS_TRUE if data is present, otherwise JS_FALSE. Page J.86

433 User manual Version 15.0, May 2018 T/HIS Example To check for X direct stress data for SOLIDs in model m: if(m.QueryDataPresent(Component.SXX, Entity.SOLID)) ... To check for X direct stress data at integration point 5 for SHELLs in model m: if(m.QueryDataPresent(Component.SXX, Entity.SHELL, 5)) ... To check for X direct stress data at both the top integration point, and also extrapolated to node 3 for SHELLs in model m: if(m.QueryDataPresent(Component.SXX, Entity.SHELL, {ip:TOP, np:3}) ... To check for extra 3 beam data for BEAMs in model m: if(m.QueryDataPresent(Component.BEX, Entity.BEAM, 0, 3); To check for total mass data in model m: if(m.QueryDataPresent(Component.GMASS)); Read(filename [string] , filetype (optional) [integer] ) [static] Description Reads in a new model. Arguments Name Type Description filename string Filename you want to read. Filetypes you want to read. Can be bitwise OR of Model.THF, Model.XTF, Model.LSDA, filetype integer (optional) Model.ASCII, Model.ZTF and Model.ALL_FILES. If omitted all available files will be read. Return type Model object (or null if error). Example To read in model /data/test/file.thf: var m = Model.Read("/data/test/file.thf"); To read in model /data/test/file.thf only with .ztf files: var m = Model.Read("/data/test/file.thf", Model.ZTF); To read in model /data/test/file.thf only with .thf, .ascii and .ztf files: var m = Model.Read("/data/test/file.thf", Model.THF | Model.ASCII | Model.ZTF); F l a g ] , entity_type [ E n t i t y T y p e ] , item [integer] , end (optional) [integer] ) SetFlag(flag [ Description Sets a defined flag on an internal (or external) item(s) of type of entity_type in the model. Arguments Type Name Description flag F l g The flag you want to set. a n t i t y T y p e The entity type that the defined flag will be set on. entity_type E If +ive: The internal item number starting from 1. If -ive: The external item label. integer item end (optional) integer To flag range of items, specify an optional end of range. Flags items from item to range. Page J.87

434 T/HIS User manual Version 15.0, May 2018 Return type TRUE if the flag is successfully set on the item, otherwise FALSE Example To set the flag f on the 6th node in model m: m.SetFlag(f, Entity.NODE, 6); To set the flag f on the Node 13456 in model m: m.SetFlag(f, Entity.NODE, -13456); To set the flag f on the first 10 nodes in model m: m.SetFlag(f, Entity.NODE, 1, 10); To set the flag f on nodes with labels 1000, 1001, 1002, ..., 1009 in model m: m.SetFlag(f, Entity.NODE, -1000, -1009); Total() [static] Description Returns the total number of models. Arguments No arguments Return type integer Example To find how many models there are in T/HIS: var num = Model.Total(); F l a g ] , entity_type [ E n t i t y T y p e ] ) UnflagAll(flag [ Description Unsets a defined flag flag on all of items of type of entity_type in the model. Arguments Type Name Description flag F l g The flag you want to unset. a n t i t y T y p e The entity type that the defined flag will be unset on. entity_type E Return type TRUE if the flag is successfully unset on all the items, otherwise FALSE Example To unset the flag f on all the nodes in model m: m.UnflagAll(f, Entity.NODE); Page J.88

435 User manual Version 15.0, May 2018 T/HIS Operate class r The Operate class gives you access to the built in curve operations in T/HIS. . . o e M . Class functions s C u r v e ] , Output Curve (optional) [ C u r v e ] ) • A (Input Curve b [ (Input Curve o u r v e ] , Output Curve (optional) [ C u r v e ] ) c A • [ s C C C r v e ] , Offset [float] , Time Period [float] , Output Curve (optional) [ [ u r v e ] ) (Input Curve u c A • u C u r v e ] , Output Curve (optional) [ C u r v e ] ) • A d (Input Curve [ [ • u r v e ] , 2nd Curve or constant [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) A d d (Input Curve C or real] (1st Curve u r v e ] , 2nd Curve or constant [ C u r v e C , Output Curve (optional) [ C u r v e ] ) x d A • [ (X Acceleration [ C u r v e • , Y Acceleration [ C u r v e ] , Z Acceleration [ C u r v e ] , Acceleration conversion A s i ] [float] [float] , Z Acceleration Limit [float] , Calculation factor [float] , X Acceleration Limit , Y Acceleration Limit , Output Curve (optional) , X axis interval (optional) u r v e ] ) [string] method [ [float] C (Input Curve ] C u r v e ] , Output Curve (optional) [ C u r v e n ) • A s i [ u n C u r v e ] , Output Curve (optional) [ C [ r v e ] ) a t A • (Input Curve n 2 (1st Input Curve [ • u r v e ] , 2nd Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) A t a C (Input Curve C u r v e ] , Output Curve (optional) [ C u r v e ] ) • [ A v v (Curves , Output Curve (optional) [ C u r [Array of Curve objects] e ] ) e v • A • (Input Curve [ C u r v e ] ) B l c u (Input Curve [ C u r v e ] , Frequency [float] , Order [integer] , X axis interval (optional) [float] , Output Curve • B t u [ e ] ) (optional) r C v 0 1 [ C u r v e ] , X axis interval (optional) [float] , Output Curve (optional) [ C u r v e ] ) C • 0 0 (Input Curve C (Input Curve C u r v e ] , X axis interval (optional) [float] , Output Curve (optional) [ [ u r v e ] ) 8 1 C • 0 (Input Curve [ C u r v e ] , X axis interval (optional) [float] , Output Curve (optional) [ C • r v e ] ) C 6 0 u 0 (Input Curve [ C u r v e ] , X axis interval (optional) [float] , Output Curve (optional) [ C u r v e ] ) • C 6 0 e (1st Curve t u r v e ] , 2nd Curve [ C u r v [ or real] , Output Curve (optional) [ C u r v e ] ) a C • C i p (Input Curve [ C u r v • ] , X min [float] , X max [float] , Y min [float] , Y max [float] , Output Curve C l e C r v e ] ) (optional) [ u m C C u r v e ] , 2nd Curve [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) • [ (1st Curve o u (1st Curve C u r v e ] , 2nd Curve [ C [ r v e ] , Correlation type [string] ) r o • C r 3 (1st Curve [ C u r • e ] , 2nd Curve [ C u r v e ] , X axis factor (optional) [float] , Y axis factor (optional) [float] ) C o v o (Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • C s C (Input Curve C u r v e ] , Output Curve (optional) [ [ u r v e ] ) D • a i f (Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • D i D [ C u r v e ] , 2nd Curve or constant [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) • v (1st Curve x (1st Curve C u r v e ] , 2nd Curve or constant [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) D • i [ [ s r v e ] , Broadening Factor [float] , Redefine Frequencies [string] , Output Curve D • C (Input Curve u v ] ) r e u C [ (optional) C u r v e • , Output Curve (optional) [ C u r v e ] ) D v (Input Curve [ ] (Curves [Array of Curve objects] , Output Curve (optional) [ C u r v e ] ) • E n v (1st Curve • C u r v e ] , 2nd Curve [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) E [ r r [ (Input Curve C u r v e ] , Output option [string] , Output Curve (optional) [ C u r v e ] ) c x • E p (Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • E x t [ f C u r v e ] , Output option [string] , X axis interval (optional) [float] , Scaling option • F (Input Curve [string] (optional) ) (Input Curve [ C u r v e ] , X axis interval (optional) [float] , Output Curve (optional) [ C u r v e ] ) • F r i (Input Curve r C u c v e ] , Window [float] , Acceleration factor [float] ) • H i [ , Window c [ C u r v e ] (Input Curve [float] , Acceleration factor [float] ) i H • d f t (1st Curve [ C u r v e ] , 2nd Curve [ C u • v e ] , Input type [string] ) I f r n (Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • I t g C [ C u r v e ] , Output Curve (optional) [ o u r v e ] ) (Input Curve L • ] • 0 (Input Curve [ C u r v e o , Output Curve (optional) [ C u r v e ] ) L g 1 o g 1 0 x (Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • L o L (Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • g x q (Input Curve C u r v e ] , Output Curve (optional) [ C u r v e ] ) L • s [ e (1st Curve C u p v e ] , 2nd Curve [ C u r v [ or real] , Output Curve (optional) [ C u r v e ] ) a M • r x (Curves [Array of Curve objects] , Output Curve (optional) [ C u r v e ] ) • M a i n [Array of Curve objects] , Output Curve (optional) [ C u r v e ] ) • M (Curves n ) [ C u r v e ] , Output Curve (optional) [ C u r v e ] o • M (Input Curve v l [ C u r v e ] , 2nd Curve or constant [ C u r (1st Curve e or real] , Output Curve (optional) [ C u r v e ] ) M • u u x (1st Curve [ C u r v e ] , 2nd Curve or constant [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) • M c N [ C u r v e ] , 2nd Curve [ C u r v e ] ) • p (1st Curve u j [ C u r v e ] i [ C u r v e ] , Moment [ C (Shear Force r v e ] , Fzc(tension) [float] , Fzc(compression) [float] , • N , Axial Force , Myc(Extension) [float] , E [float] ) [float] Myc(Flexion) o r (Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • N [integer] o (Input Curve [ C u r v e ] , Y Min Value [float] , Y Max Value [float] , Lock to Axis (Y Min) 2 , Lock to • r N , Output Curve (optional) C u r v [ ] ) [integer] Axis (Y Max) e o x (Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • N ] o 2 (Input Curve [ C u r v e x , X Min Value [float] , X Max Value [float] , Lock to Axis (X Min) [integer] , Lock to N • Page J.89

436 T/HIS User manual Version 15.0, May 2018 [ C u r v e ] ) Axis (X Max) [integer] , Output Curve (optional) t a e (Input Curve [ C u r v e ] , Band type to convert to [String] , Output Type [String] , Input Type [String] , Output O • c v r C ] ) [ v Curve (optional) u e u r C u r v e ] , Output Curve (optional) [ C [ r v e ] ) e (Input Curve • O r d (Input Curve [ C • r v e ] , Frequency [float] , Order [integer] , X axis interval (optional) [float] , Output Curve P b u t u r v e ] ) u C [ (optional) e r (Input Curve [ C u r v e ] , Power [float] , Output Curve (optional) [ C u r v e ] ) • P o w e R [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • a v (Input Curve u (Input Curve u r v e ] , Output Curve (optional) [ C C r v e ] ) c [ • R e (Input Curve [ C u r v e ] • [float] , Output Curve (optional) [ C u r v e ] ) R e g , X axis interval s [Array of Curve objects] , Output Curve (optional) [ C u r (Curves e ] ) e R • v v (Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • R e (Input Curve C s u r v e ] , Damping Factor [float] , Sampling Points [int] , X axis interval (optional) [float] , Output • R [ u [ e ] ) Curve (optional) r C v u (Input Curve u r v e ] , Output Curve (optional) [ C C r v e ] ) n [ • S i o t h (Input Curve [ C u r v e ] , Smoothing Factor [integer] • [ C u r v e ] ) S m o , Output Curve (optional) r [ C u r v e ] , Output Curve (optional) [ (Input Curve u r v e ] ) q S • C r e s s (Input Curve [ C u r v e ] , Convert to [string] , Output Curve (optional) [ C u r v e • ) S t ] u (1st Curve [ C u r v e ] , 2nd Curve or constant [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) • S b v m , Output Curve (optional) [ C u r [Array of Curve objects] e ] ) u (Curves • S x (1st Curve [ C u r v e ] , 2nd Curve or constant [ C u r v e or real] • [ C u r v e ] ) S u , Output Curve (optional) a (Input Curve [ C u r v e ] , Output Curve (optional) n C u r v e ] ) T • [ h i v (X Acceleration [ C u r v e ] , Y Acceleration [ C u r v e ] , Yaw Rate [ C u r v e ] , Dx [float] , Dy [float] , X0 [float] ) • T m T [ C u r v e ] , Period [float] ) • s (Input Curve a T l a t e (Input Curve [ C u r v e ] , X value [float] , Y value [float] , Output Curve (optional) [ C u r v e ] ) • n r s ) (Upper Rib Acceleration C u r v e ] , Lower Rib Acceleration i C u r v e ] , T12 Acceleration [ C u r v e ] [ • T t [ (Input Curve C u r v e ] , Output Curve (optional) [ [ u r v e ] ) a V • C (Input Curve [ C u r v e ] , A [float] , B [float] , Calculation method [string] , Output Curve (optional) [ C • r v e ] ) V c u d [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) • V (Input Curve c e [ C u r v e ] , 2nd Curve [ C u r v e or real] , 3rd Curve [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) (1st Curve • V r c d (1st Curve [ C u r v e ] , 2nd Curve [ C u 2 v e or real] , Output Curve (optional) [ C u r v e ] ) e V • i f (1st Curve [ C u r v e ] , 2nd Curve [ C u r v e ] ) • W i W o w (Input Curve [ C u r v e ] , Window Type [string] , percentage lead in (optional) [float] , Output Curve • n d u [ e ] ) (optional) r C v C o [ C u r r e ] , Output Curve (optional) [ (Input Curve u r v e ] ) e Z • v r o X (Input Curve [ C u • v e ] , Output Curve (optional) [ C u r v e ] ) Z e r e o Y (Input Curve [ C u r v e ] r [ C u r v e ] ) Z • , Output Curve (optional) B (Input Curve [ C u r v e ] , Reference Value [float] , Output Curve (optional) [ C u r v e ] ) • d u B [ C u r v e ] , Weighting Type [String] , Output Curve (optional) [ C (Input Curve r v e ] ) • A d Detailed Description The Operate class allows you to use the built in curve operations in T/HIS to generate new curves. Most of the curve operations generate a new curve and return the curve object for the new curve. A few functions (NIJ, FFT, etc) generate multiple output curves and these return an array of curve objects. See the documentation below for more details. Details of functions C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Abs(Input Curve [ Description Convert a curve to absolute values Arguments Type Name Description C v e Input Curve C u r v e u r Input u r v e C u r v e to overwrite Output Curve (optional) C Return type u r v e object or NULL C Page J.90

437 User manual Version 15.0, May 2018 T/HIS Example To convert curve m to absolute values and store as curve p p = Operate.Abs(m); r v e ] , Output Curve (optional) [ C u r v u ] ) [static] Acos(Input Curve C [ e Description Calculate Arc Cosine Arguments Name Type Description r v e Input Input Curve u r v e C u C u v e C u r v e to overwrite Output Curve (optional) r C Return type C r v e object or NULL u Example Calculate Arc Cosine() of curve m and store as curve p p = Operate.Acos(m); C u r v e ] , Offset [float] , Time Period [float] , Output Curve (optional) [ C u r v e ] ) [static] Acu(Input Curve [ Description Evaluates the integratal of a curve over a user defined period Arguments Type Description Name v v e Input C u Input Curve C e u r r User defined offset float Offset Time Period float Time to integrate over u r v e C u r v e to overwrite Output Curve (optional) C Return type u v e object or NULL r C Example Integrate c curve over 0.07 seconds with a 0.1 offset. p = Operate.Acu(m,0.1,0.007); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Ad(Input Curve [ Description Convert acceleration spectrum to a displacment spectrum Page J.91

438 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type v e Input C u r v e Input Curve C r u v u C r r v e to overwrite Output Curve (optional) C u e Return type C v e object or NULL u r Example Convert curve m and store as curve p p = Operate.Ad(m); u r v e ] , 2nd Curve or constant [ C u r Add(Input Curve e or real] , Output Curve (optional) [ C u r v e ] ) [static] [ C v Description Add Y axis values Arguments Type Name Description v e Input C u r v e Input Curve C r u r v e or real 2nd C u r v e or constant C 2nd Curve or constant u u r v e C u r v e to overwrite Output Curve (optional) C Return type u e object or NULL C r v Example To add curves m and n together and store as curve p p = Operate.Add(m,n); To add 20.0 to the values in curve m and store as curve p p = Operate.Add(m,20.0); u r v e ] , 2nd Curve or constant [ C u r v e or real] Adx(1st Curve [ C u r v e ] ) [static] [ C , Output Curve (optional) Description Add X axis values Arguments Name Type Description u r v e 1st C u r v e 1st Curve C r u e or real 2nd C u v v e or constant r 2nd Curve or constant C u r v e C u r v e to overwrite Output Curve (optional) C Return type C u r v e object or NULL Page J.92

439 User manual Version 15.0, May 2018 T/HIS Example To add X axis values for curves m and n together and store as curve p p = Operate.Adx(m,n); To add 20.0 to the X axis values in curve m and store as curve p p = Operate.Adx(m,20.0); v r e ] , Y Acceleration [ C u r v e ] , Z Acceleration [ C [ r v e ] , Acceleration conversion C Asi(X Acceleration u u [float] , Y Acceleration Limit [float] , Z Acceleration Limit [float] , Calculation , X Acceleration Limit [float] factor [float] , Output Curve (optional) [ C u r v e ] method [string] , X axis interval (optional) ) [static] Description Acceleration Severity Index. This value is used to assess the performance of road side crash barriers. The calculation method can be set to 2010 (BS EN 1317-1:2010) or 1998 (BS EN 1317-1:1998). Arguments Description Name Type v v X Acceleration C C r e e r X Acceleration u u r v e Y Acceleration Y Acceleration u r v e C u C u v e Z Acceleration C r r v e C Z Acceleration u Acceleration conversion Factor required to divide input acceleration curve by to convert to (G) float factor float X Acceleration Limit X direction acceleration limit Y direction acceleration limit float Y Acceleration Limit float Z Acceleration Limit Z direction acceleration limit Either 2010 or 1998. string Calculation method X axis interval (optional) If defined then T-HIS will automatically regularise the curve using this value float first r v e C u Output Curve (optional) v e to overwrite C u r Return type C e object or NULL u r v Example Calculate ASI using the 2010 method with input curves x,y and z, factors 12,9,10 and a conversioon factor of 9810. Regularise the input curves using an interval of 0.0001 first. p = Operate.Asi(x,y,z,9810.0,12.0,9.0,10.0,"2010",0.0001); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Asin(Input Curve [ Description Calculate Arc Sine Arguments Type Name Description C v e Input Curve C u r v e u r Input u r v e C u r v e to overwrite Output Curve (optional) C Return type u r v e object or NULL C Page J.93

440 T/HIS User manual Version 15.0, May 2018 Example Calculate Arc Sine() of curve m and store as curve p p = Operate.Asin(m); r v e ] , Output Curve (optional) [ C u r v u ] ) [static] Atan(Input Curve C [ e Description Calculate Arc Tangent Arguments Name Type Description r v e Input Input Curve u r v e C u C u v e C u r v e to overwrite Output Curve (optional) r C Return type r v e object or NULL u C Example Calculate Arc Tangent() of curve m and store as curve p p = Operate.Atan(m); C u r v e ] , 2nd Input Curve [ C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Atan2(1st Input Curve [ Description Calculate Arc Tangent using atan2(y, x) Arguments Description Type Name v e Input C u r v e 1st Input Curve C r u r v e Input C u r v e 2nd Input Curve u C u r v e C u r v e to overwrite Output Curve (optional) C Return type u v e object or NULL r C Example Calculate Arc Tangent() of curve m / curve n and store as curve p p = Operate.Atan2(m, n); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Av(Input Curve [ Description Convert acceleration spectrum to a velocity spectrum Page J.94

441 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type v e Input C u r v e Input Curve C r u to overwrite v C u r v e e Output Curve (optional) C u r Return type C e object or NULL u r v Example Convert curve m and store as curve p p = Operate.Av(m); [ C u r v e ] ) [static] Ave(Curves , Output Curve (optional) [Array of Curve objects] Description Average a group of curves Arguments Name Description Type C Array of r v e objects Array of Curve objects Curves u u r v e C u r v e to overwrite Output Curve (optional) C Return type u e object or NULL r v C Example Average the array of curves stored in curve array x and store as curve p p = Operate.Ave(x); Blc(Input Curve r v e ] ) [static] [ C u Description Carry out a baseline correction on an accleration time history Arguments Name Type Description u r v e Moment / Time C u r v e Input Curve C Return type C r v e objects. 1st curve : Corrected curve 2nd curve : Integrated Velocity 3rd curve : Integrated Displacement u Array of Example Calculate baseline correction on curve m, . c_array = Operate.Blc(m); corrected_curve = c_array[0]; vel_curve = c_array[1]; disp_curve = c_array[2]; Page J.95

442 T/HIS User manual Version 15.0, May 2018 u r v e ] , Frequency [float] , Order [integer] , X axis interval (optional) [float] , Output Curve But(Input Curve [ C u r e ] ) [static] [ (optional) v C Description Butterworth Filter Arguments Type Description Name r v e Input C u r v e Input Curve C u Cut-off Frequency (Hz) Frequency float Order Filter order integer If defined then T-HIS will automatically regularise the curve using this value first X axis interval (optional) float Output Curve (optional) v e C u r v e to overwrite u C r Return type r e object or NULL C v u Example Filter curve m using a cut-off of 400Hz and order 2 and output as curve p . Regularise the input curve using an interval of 0.0001 first. p = Operate.But(m,400.0,2,0.0001); C u r v e ] , X axis interval (optional) [float] , Output Curve (optional) [ C u r v e ] ) [static] C1000(Input Curve [ Description SAE Class 1000 Filter Arguments Name Description Type v e Input C u r u e Input Curve C r v If defined then T-HIS will automatically regularise the curve using this value first float X axis interval (optional) Output Curve (optional) v e C u r v e to overwrite C u r Return type u r v e object or NULL C Example Filter curve m and output as curve p . Regularise the input curve using an interval of 0.0001 first. p = Operate.C1000(m,0.0001); C u r v e ] , X axis interval (optional) [float] , Output Curve (optional) C180(Input Curve C u r v e ] ) [static] [ [ Description SAE Class 180 Filter Page J.96

443 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type v e Input C u r v e Input Curve C r u X axis interval (optional) float If defined then T-HIS will automatically regularise the curve using this value first C e Output Curve (optional) u r v e to overwrite C u r v Return type C v e object or NULL r u Example Filter curve m and output as curve p . Regularise the input curve using an interval of 0.0001 first. p = Operate.C180(m,0.0001); C60(Input Curve r v e ] , X axis interval (optional) [float] , Output Curve (optional) [ C u r v e ] ) [static] [ C u Description SAE Class 60 Filter Arguments Name Type Description r v e Input Input Curve u C v e u r C If defined then T-HIS will automatically regularise the curve using this value first float X axis interval (optional) u r v e C u r v e to overwrite Output Curve (optional) C Return type u e object or NULL r v C Example Filter curve m and output as curve p . Regularise the input curve using an interval of 0.0001 first. p = Operate.C60(m,0.0001); r r v e ] , X axis interval (optional) [float] C600(Input Curve [ C u [ v e ] ) [static] C u , Output Curve (optional) Description SAE Class 600 Filter Arguments Name Type Description u r v e Input C u r v e Input Curve C If defined then T-HIS will automatically regularise the curve using this value first X axis interval (optional) float u r v e C u r v Output Curve (optional) to overwrite e C Return type C u r v e object or NULL Page J.97

444 T/HIS User manual Version 15.0, May 2018 Example Filter curve m and output as curve p . Regularise the input curve using an interval of 0.0001 first. p = Operate.C600(m,0.0001); r v e ] , 2nd Curve [ C u r v e or real] , Output Curve (optional) [ u u r v e ] ) [static] Cat(1st Curve C [ C Description Concatenate 2 curves together Arguments Name Type Description r v e 1st C u r 1st Curve e C u v u v e or real 2nd C u r v e 2nd Curve C r r u e C u r v e to overwrite Output Curve (optional) C v Return type r v e object or NULL C u Example To concatenate the values for curve n to those in curve m and store as curve p p = Operate.Cat(m,n); C u r v e ] , X min [float] , X max [float] , Y min [float] , Y max [float] , Output Curve (optional) [ C u r v e ] ) Clip(Input Curve [ [static] Description Clip a curve Arguments Description Name Type r v e Input C u r v e C Input Curve u float X min X minimum value X max X maximum value float Y minimum value float Y min float Y maximum value Y max u r v e C u r v e to overwrite Output Curve (optional) C Return type u v e object or NULL r C Example Clip a curve m to within 0.1

445 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type v e 1st C u r v e 1st Curve C r u r v or real 2nd C u e v e u C 2nd Curve r r v e C u r v e Output Curve (optional) C u to overwrite Return type C e object or NULL u v r Example To combine the Y axis values for curve n to those in curve m and store as curve p p = Operate.Com(m,n); v r v e ] , 2nd Curve Cor(1st Curve C u r [ e ] , Correlation type [string] ) [static] C u [ Description Curve Correlation function. This Correlation function provides a measure of the degree to which two curves match. When comparing curves by eye, the quality of correlation may be judged on the basis of how well matched are the patterns of peaks, the overall shapes of the curves, etc, and can allow for differences of timing as well as magnitude. Thus a simple function based on the difference of Y-values (such as T/HIS ERR function) does not measure correlation in the same way as the human eye. The T/HIS correlation function attempts to include and quantify the more subtle ways in which the correlation of two curves may be judged. The correlation can be calculated using either a strict or loose set of input parameters. The degree of correlation is rated between 0 and 100. Arguments Name Description Type v v 1st 1st Curve u r e e r u C C 2nd Curve v e 2nd C u r v e C u r Correlation type, strict or loose string Correlation type Return type Correlation value. Example Calculate the correlation between curves m and n using the strict input parameters. val = Operate.Cor(m,n,"strict"); , X axis factor (optional) u r v e ] , 2nd Curve [ C u r v e ] [ [float] , Y axis factor (optional) [float] ) [static] Cor3(1st Curve C Description Curve Correlation function. This function first normalises the curves using two factors either specified by the user or defaults calculated by the program (the maximum absolute X and Y values of both graphs). For each point on the first normalised curve, the shortest distance to the second normalised curve is calculated. The root mean square value of all these distances is subtracted from 1 and then multiplied by 100 to get an index between 0 and 100. The process is repeated along the second curve and the two indices are averaged to get a final index. The higher the index the closer the correlation between the two curves. Note that the choice of normalising factors is important. Incorrect factors may lead to a correlation index outside the range of 0 to 100 Page J.99

446 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type v e 1st C u r v e 1st Curve C r u v u 2nd C r r v e 2nd Curve C u e X axis factor (optional) float Normalising factor used for X axis values Y axis factor (optional) float Normalising factor used for Y axis values Return type Correlation value. Example Calculate the correlation between curves m and n using the default normalising factors. val = Operate.Cor3(m,n); Calculate the correlation between curves m and n using 0.1 and 1000.0 as the X and Y normalising factors. val = Operate.Cor3(m,n,0.1,1000); u Cos(Input Curve v e ] , Output Curve (optional) [ C u r v e ] ) [static] [ C r Description Calculate Cosine Arguments Name Description Type r r e u C u v v e C Input Curve Input u r v e C u r v e to overwrite Output Curve (optional) C Return type u e object or NULL C r v Example Calculate Cosine() of curve m and store as curve p p = Operate.Cos(m); v r v e ] , Output Curve (optional) Da(Input Curve C u r [ e ] ) [static] C u [ Description Convert displacment spectrum to an acceleration spectrum Arguments Name Type Description u r v e Input C u r v e Input Curve C v u e C u r v e to overwrite r Output Curve (optional) C Return type C r v e object or NULL u Page J.100

447 User manual Version 15.0, May 2018 T/HIS Example Convert curve m and store as curve p p = Operate.Da(m); r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Dif(Input Curve C [ u Description Differentiate a curve Arguments Type Name Description v v Input r u r e e u C Input Curve C r v e C u Output Curve (optional) v e to overwrite C u r Return type C e object or NULL u v r Example To differentiate curve m and store as curve p p = Operate.Dif(m); e r v e ] , 2nd Curve or constant [ Div(1st Curve u r v [ or real] , Output Curve (optional) [ C u r v e ] ) [static] C u C Description Divide Y axis values Arguments Name Type Description v r 1st C u r e e u v 1st Curve C r v e or real 2nd C u 2nd Curve or constant v e or constant C u r u v e C u r v e to overwrite C Output Curve (optional) r Return type r u object or NULL v e C Example To divide the Y axis values for curve n by curve m and store as curve p p = Operate.Div(m,n); To devide the Y axis values in curve m by 20.0 and store as curve p p = Operate.Div(m,20.0); C u r v e ] , 2nd Curve or constant [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) [static] Dix(1st Curve [ Description Divide X axis values Page J.101

448 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type v e 1st C u r v e 1st Curve C r u v r or real 2nd C u r v e or constant 2nd Curve or constant C u e e v C u r v e to overwrite Output Curve (optional) u C r Return type C e u r v object or NULL Example To divide the X axis values for curve n by curve m and store as curve p p = Operate.Dix(m,n); To devide the X axis values in curve m by 20.0 and store as curve p p = Operate.Dix(m,20.0); u r v e ] , Broadening Factor [float] , Redefine Frequencies [string] , Output Curve Ds(Input Curve [ C u [ v e ] ) [static] (optional) r C Description Generate a design spectrum from a reponse spectrum Arguments Name Type Description u r v e Input C u r v e Input Curve C Spectrum broadening factor float Broadening Factor string T-HIS selects a new set of frequencies for the output (yes or no) Redefine Frequencies Output Curve (optional) v e C u r v e to overwrite C u r Return type r v e object or NULL u C Example Convert curve m and let T-HIS determine the new frequencies, store as curve p p = Operate.Ds(m,"yes"); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Dv(Input Curve [ Description Convert displacment spectrum to a velocity spectrum Arguments Type Name Description C v e Input Curve C u r v e u r Input u r v e C u r v e to overwrite Output Curve (optional) C Return type u r v e object or NULL C Page J.102

449 User manual Version 15.0, May 2018 T/HIS Example Convert curve m and store as curve p p = Operate.Dv(m); C u r v e ] ) [static] Env(Curves , Output Curve (optional) [Array of Curve objects] [ Description Generate an Envelope that bounds the min and max values of a group of curves Arguments Type Name Description u r v e objects Curves Array of Curve objects Array of C e v C u r v e to overwrite r C Output Curve (optional) u Return type v C object or NULL u r e Example Envelope of curves stored in curve array x and store as curve p p = Operate.Env(x); or real] r v e ] , 2nd Curve [ C u Err(1st Curve v e [ , Output Curve (optional) [ C u r v e ] ) [static] C u r Description Calculate the degree of correlation between 2 curves Arguments Description Type Name v r 1st C u r e e C v u 1st Curve r v e or real 2nd C 2nd Curve r v e C u u u v e C u r v e to overwrite C Output Curve (optional) r Return type r e object or NULL v C u Example To calculate the correlation between curves n and m and store as curve p p = Operate.Err(m,n); C u r v e ] , Output option [string] , Output Curve (optional) [ C u r v e ] ) [static] Exc(Input Curve [ Description Calculate and displays an EXCeedence plot. This is a plot of force (Y axis) versus cumulative time (X axis) for which the force level has been exceeded. By default the Automatic option will create an exceedence plot using either the +ve OR the -ve values depending on which the input curve contains most of. The Positive option will calculate the exceedence plot using only the points with +ve y values. The Negative option will calculate the exceedence plot using only the points with -ve y values. Page J.103

450 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type v e Input C u r v e Input Curve C r u Output option string Select between automatic, positive or negative. C Output Curve (optional) C u r v e to overwrite e u r v Return type C v e object or NULL r u Example Calculate Exceedence plot for curve m, using the positive option and store as curve p p = Operate.Exc(m,"positive"); u Exp(Input Curve v e ] , Output Curve (optional) [ C u r v e ] ) [static] [ C r Description Calculate E to the power of Y axis values Arguments Name Description Type r r e u C u v v e C Input Curve Input u r v e C u r v e to overwrite Output Curve (optional) C Return type u e object or NULL C r v Example Calculate E to the power of Y axis values for curve m and store as curve p p = Operate.Exp(m); , Scaling option (optional) r v e ] , Output option Fft(Input Curve , X axis interval (optional) [float] [ [string] ) C u [string] [static] Description Fast Fourier Transform Arguments Name Type Description u r v e Input C u r v e Input Curve C Generate magnitude, magnitude+phase or real+imaginary, (one of string Output option magnitude,phase,real) float If defined then T-HIS will automatically regularise the curve using this value first X axis interval (optional) Scaling option string Scaling option, (either one or two) (optional) Return type r v e object/array or NULL u C Page J.104

451 User manual Version 15.0, May 2018 T/HIS Example Generate magnitude and phase curves and return a curve array. Regularise the input curve using an interval of 0.0001 first and scale using option two. c_array = Operate.Fft(m,"phase",0.0001,"one"); mag_curve = c_array[0]; phase_curve = c_array[1]; e v e ] , X axis interval (optional) [float] , Output Curve (optional) [ C u Fir(Input Curve v r ] ) [static] [ u C r Description FIR Filter Arguments Name Type Description r v e Input Curve C u r v e C u Input If defined then T-HIS will automatically regularise the curve using this value first X axis interval (optional) float e r C u r v e to overwrite Output Curve (optional) C v u Return type v e object or NULL r u C Example Filter curve m and output as curve p . Regularise the input curve using an interval of 0.0001 first. p = Operate.Fir(m,0.0001); C u r v e ] , Window [float] , Acceleration factor [float] ) [static] Hic(Input Curve [ Description HIC Calculation. After calculating the HIC value for a curve the value can also be obtained from the curve using the v e . h r c property. In addition to the HIC value the start and end time for the time window can also be obtained using u C i u r v e . h i c _ t m i n and C u r v e . h i c _ t m a x properties. the C Arguments Type Name Description r r e Input Input Curve u v v e u C C Maximum time window Window float Factor required to divide input acceleration curve by to convert to (G) float Acceleration factor Return type HIC value. Example Calculate HIC for curve m, using a window of 0.036s and a factor of 9810. val = Operate.Hic(m,0.036,9810.0); Page J.105

452 T/HIS User manual Version 15.0, May 2018 u r v e ] , Window [float] , Acceleration factor [float] ) [static] Hicd(Input Curve [ C Description Modified HIC(d) Calculation for free motion headform. After calculating the HIC value for a curve the value can also v e . h i r d property. In addition to the HIC(d) value the start and end time for the be obtained from the curve using the u C c r v e . h i c d _ t m i n and C u r v e . h i c time window can also be obtained using the _ t m a x properties. C u d Arguments Type Name Description v r Input C u r e e u v Input Curve C float Window Maximum time window Factor required to divide input acceleration curve by to convert to (G) float Acceleration factor Return type HIC(d) value. Example Calculate HIC(d) for curve m, using a window of 0.036s and a factor of 9810. val = Operate.Hicd(m,0.036,9810.0); C u r v e ] , 2nd Curve [ C u r v e ] , Input type [string] ) [static] Ifft(1st Curve [ Description Inverse Fast Fourier Transform Arguments Name Type Description v e 1st C u r v e 1st Curve C r u r v e 2nd C 2nd Curve r v e C u u Specifies if inputs are magnitude+phase or real+imaginary, (magnitude or real) Input type string Return type r v e u object or NULL C Example Generate curve from magnitude (m) and phase (p) data and return as curve q. q = Operate.Ifft(m,p,"magnitude"); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Int(Input Curve [ Description Integrate a curve Arguments Type Description Name u r v e Input C u r v e Input Curve C r u v e C u r v e to overwrite C Output Curve (optional) Page J.106

453 User manual Version 15.0, May 2018 T/HIS Return type v C r e u object or NULL Example To integrate curve m and store as curve p p = Operate.Int(m); e v e ] , Output Curve (optional) [ C Log(Input Curve r v C ] ) [static] [ u r u Description Calculate Natural Log of Y axis values Arguments Name Type Description r Input Curve e Input C u r v e C u v u v e C u r v e to overwrite Output Curve (optional) r C Return type r v e object or NULL u C Example Calculate Natural Log of Y axis values for curve m and store as curve p p = Operate.Log(m); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Log10(Input Curve [ Description Calculate Log (base 10) of Y axis values Arguments Name Type Description v e Input C u r v e Input Curve C r u r v e C u r v e to overwrite C Output Curve (optional) u Return type r v e object or NULL C u Example Calculate Log (base 10) of Y axis values for curve m and store as curve p p = Operate.Log10(m); C u r v e ] , Output Curve (optional) [ Log10x(Input Curve u r v e ] ) [static] C [ Description Calculate Log (base 10) of X axis values Page J.107

454 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type v e Input C u r v e Input Curve C r u v u C r r v e to overwrite Output Curve (optional) C u e Return type C v e object or NULL u r Example Calculate Log (base 10) of X axis values for curve m and store as curve p p = Operate.Log10x(m); u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] [ Logx(Input Curve C Description Calculate Natural Log of X axis values Arguments Name Description Type C v Input Curve Input C u r v e u r e u r v e C u r v e to overwrite Output Curve (optional) C Return type u e object or NULL r v C Example Calculate Natural Log of X axis values for curve m and store as curve p p = Operate.Logx(m); v r v e ] , Output Curve (optional) Lsq(Input Curve C u r [ e ] ) [static] C u [ Description Calculate Least Squares Fit for a curve Arguments Name Type Description u r v e Input C u r v e Input Curve C v u e C u r v e to overwrite Output Curve (optional) r C Return type C v e object or NULL r u Example To calculate Least Squares Fit for curve m and store as curve p p = Operate.Lsq(m); Page J.108

455 User manual Version 15.0, May 2018 T/HIS u r v e ] , 2nd Curve [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) [static] Map(1st Curve [ C Description Map Y axis values from one curve onto another curve Arguments Name Description Type r v e 1st C u r v e 1st Curve C u r v e or real 2nd C u r u e 2nd Curve C v r u e C u r v e to overwrite Output Curve (optional) C v Return type r v e object or NULL C u Example To map curve n onto curve m and store as curve p p = Operate.Map(m,n); , Output Curve (optional) [ C u r v e ] ) [static] Max(Curves [Array of Curve objects] Description Maximum of a group of curves Arguments Name Type Description u r v Array of objects Curves Array of Curve objects C e r v e C u Output Curve (optional) v e to overwrite C u r Return type v e object or NULL r u C Example Maximum of curves stored in curve array x p = Operate.Max(x); , Output Curve (optional) [ C u r v e ] ) [static] Min(Curves [Array of Curve objects] Description Minimum of a group of curves Arguments Type Name Description v Curves r Array of Curve objects e objects Array of C u u r v e C u r v e to overwrite Output Curve (optional) C Return type C u r v e object or NULL Page J.109

456 T/HIS User manual Version 15.0, May 2018 Example Minimum of curves stored in curve array x p = Operate.Min(x); r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Mon(Input Curve C [ u Description Sort a curve into monotonically increasing X axis values. Arguments Type Name Description v v Input r u r e e u C Input Curve C r v e C u Output Curve (optional) v e to overwrite C u r Return type v e object or NULL u C r Example To sort curve m and store as curve p p = Operate.Mon(m); e r v e ] , 2nd Curve or constant [ Mul(1st Curve u r v [ or real] , Output Curve (optional) [ C u r v e ] ) [static] C u C Description Multiply Y axis values Arguments Name Type Description v r 1st C u r e e u v 1st Curve C r v e or real 2nd C u 2nd Curve or constant v e or constant C u r u v e C u r v e to overwrite C Output Curve (optional) r Return type r u object or NULL C v e Example To multiply the Y axis values for curve n from m and store as curve p p = Operate.Mul(m,n); To multiply the Y axis values in curve m by 20.0 and store as curve p p = Operate.Mul(m,20.0); C u r v e ] , 2nd Curve or constant [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) [static] Mux(1st Curve [ Description Multiply X axis values Page J.110

457 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type v e 1st C u r v e 1st Curve C r u v v or real 2nd C u r e e or constant u C 2nd Curve or constant r r v e C u r v e to overwrite Output Curve (optional) C u Return type C e object or NULL r u v Example To multiply the X axis values for curve n from m and store as curve p p = Operate.Mux(m,n); To multiply the X axis values in curve m by 20.0 and store as curve p p = Operate.Mux(m,20.0); u r v e ] , 2nd Curve [ C u Ncp(1st Curve v e ] ) [static] [ C r Description Calculate a platic rotation curve for a beam from a moment/time and rotation/time Arguments Name Type Description u r v e Moment / Time C u r v e 1st Curve C u C e Rotation /Time C u r v e 2nd Curve r v Return type r v e object or NULL C u Example Calculate plastic rotation curve p using curves m and r. q = Operate.Ncp(m,r); C u r v e ] , Axial Force [ C u r v e ] , Moment [ C u r v e ] , Fzc(tension) [float] , Fzc(compression) [float] , Nij(Shear Force [ , Myc(Extension) , E [float] ) [static] [float] Myc(Flexion) [float] Description Biomechanical neck injury predictor. Used as a measure of injury due to the load transferred through the occipital condyles. This function returns an array containing 4 curve objects. Curve 1 - "Nte" is the tension-extension condition Curve 2 - "Ntf" is the tension-flexion condition Curve 3 - "Nce" is the compression-extension condition Curve 4 - "Ncf" is the compression-flexion condition. Page J.111

458 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type v e Shear Force C u r v e Shear Force C u r v v Axial Force C u r e e r C Axial Force u r v e Moment C u Moment v e C u r Critical Axial Force (Tension) Fzc(tension) float Critical Axial Force (Compression) float Fzc(compression) float Myc(Flexion) Critical bending moment (Flexion) Critical bending moment (Extension) float Myc(Extension) E Distance float Return type r v e objects. 1st curve : Nte curve 2nd curve : Ntf curve 3rd curve : Nce curve 4th curve : Ncf curve 2nd C Array of u curve : PHD curve= Example Calculate NIJ curves using input curves x,y,z, and constnats Fxc=1.0/2.0, Myc=3.0/4.0 and E=0.0. c_array = Operate.Nij(x,y,z,1.0,2.0,3.0,4.0,0.0); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Nor(Input Curve [ Description Normalise Y axis values between [-1,1] Arguments Name Type Description v e Input C u r v e Input Curve C r u r v Output Curve (optional) C u r v e to overwrite C u e Return type u r v e object or NULL C Example Normalise Y axis values of curve m and store as curve p p = Operate.Nor(m); u r v e ] , Y Min Value C , Y Max Value [float] , Lock to Axis (Y Min) [integer] , Lock to Axis [ Nor2(Input Curve [float] , Output Curve (optional) [ C u r v e ] ) [static] (Y Max) [integer] Description Normalise Y axis values with manual settings. The operation takes the absolute value of the user-specified Y Min and Y Max. It then finds the maximum of these two numbers and divides all Y data by this number. There are two locks which probe or "lock on to" the Y Max and Y Min axis values which offers quick axis-normalizing. Page J.112

459 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type v e 1st C u r v e Input Curve C u r The Minimum Y value Y Min Value float float Y Max Value The Maximum Y value Set the Lock button for the Y Minimum textbox integer Lock to Axis (Y Min) Lock to Axis (Y Max) Set the Lock button for the Y Maximum textbox integer r v e C u r v e Output Curve (optional) C u to overwrite Return type v e object or NULL u r C Example Normalise the Y axis values of curve m taking the absolute maximum between the two values -200 and 100 (which for this example will equate to 200) with the Y Min Lock active and the Y Max Lock Inactive. This is then stored as curve p. p = Operate.Nor2(m, -200, 100, 1, 0); u r v e ] , Output Curve (optional) Nox(Input Curve C u r v e ] ) [static] [ C [ Description Normalise X axis values between [-1,1] Arguments Description Type Name v r Input C u r e e C v u Input Curve r v e C Output Curve (optional) r v e to overwrite C u u Return type u r v e object or NULL C Example Normalise X axis values of curve m and store as curve p p = Operate.Nox(m); , X Max Value C v e ] , X Min Value [float] r [float] , Lock to Axis (X Min) [integer] , Lock to Axis u Nox2(Input Curve [ , Output Curve (optional) [ C u r v e ] ) [static] (X Max) [integer] Description Normalise X axis values with manual settings. The operation takes the absolute value of the user-specified X Min and X Max. It then finds the maximum of these two numbers and divides all X data by this number. There are two locks which probe or "lock on to" the X Max and X Min axis values which offers quick axis-normalizing. Page J.113

460 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type v e 1st C u r v e Input Curve C u r The Minimum X value X Min Value float float X Max Value The Maximum X value Set the Lock button for the X Minimum textbox integer Lock to Axis (X Min) Lock to Axis (X Max) Set the Lock button for the X Maximum textbox integer r v e C u r Output Curve (optional) e to overwrite C u v Return type v e object or NULL u r C Example Normalise the X axis values of curve m taking the absolute maximum between the two values -200 and 100 (which for this example will equate to 200) with the X Min Lock active and the X Max Lock Inactive. This is then stored as curve p. p = Operate.Nox2(m, -200, 100, 1, 0); u r v e Octave(Input Curve , Band type to convert to [String] , Output Type [String] , Input Type [String] , Output [ C ] C u r v e ] ) [static] Curve (optional) [ Description Coverts a narrow band curve to either Octave or 1/3rd Octave bands Arguments Type Description Name Input Curve v e Input C u r v e C u r Band type to convert to. Either "Octave" or "Third" Octave. String Band type to convert to Output Type String Generate curve containing either "RMS" or "mean" values. Input Type String Input curve contains either "Linear" or "dB" values. u r v e C u r v e to overwrite Output Curve (optional) C Return type u v e object or NULL r C Example Convert curve m that contains Linear values to 1/3 Octave bands and output RMS in curve p p = Operate.Ocatve(m,"third","rms","linear"); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Order(Input Curve [ Description Reverse the order of points in a curve Page J.114

461 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type v e Input C u r v e Input Curve C r u v u C r r v e to overwrite Output Curve (optional) C u e Return type C v e object or NULL u r Example Reverse the order of points in curve m and store as curve p p = Operate.Order(m); u r v e ] Pbut(Input Curve [float] , Order [integer] , X axis interval (optional) [float] , Output Curve [ C , Frequency C r v e ] ) [static] (optional) [ u Description Pure Butterworth Filter Arguments Name Description Type r v e Input C u Input Curve v e C u r Cut-off Frequency (Hz) float Frequency Order integer Filter order If defined then T-HIS will automatically regularise the curve using this value first X axis interval (optional) float u C e C u r v e to overwrite Output Curve (optional) r v Return type C object or NULL r v e u Example Filter curve m using a cut-off of 400Hz and order 2 and output as curve p. Regularise the input curve using an interval of 0.0001 first. p = Operate.Pbut(m,400.0,2,0.0001); u r v e Power(Input Curve , Power [float] , Output Curve (optional) [ C u r v e ] ) [static] [ C ] Description Raise to the power Arguments Type Name Description v r e Input C Input Curve r v e C u u Power to raise Y axis values by float Power u r v e C u r v e to overwrite Output Curve (optional) C Return type C u r v e object or NULL Page J.115

462 T/HIS User manual Version 15.0, May 2018 Example Raise the Y axis values for curve m to the power 2.5 and store as curve p p = Operate.Power(m,2.5); r v e ] , Output Curve (optional) [ C u r v u ] ) [static] Rave(Input Curve C [ e Description Calculate rolling average of a curve Arguments Name Type Description r v e Input Input Curve u r v e C u C u v e C u r v e to overwrite Output Curve (optional) r C Return type r v e object or NULL u C Example Calculate rolling average of curve m and store as curve p p = Operate.Rave(m); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Rec(Input Curve [ Description Calculate reciprocal Arguments Name Type Description v e Input C u r v e Input Curve C r u r v e C u r v e to overwrite C Output Curve (optional) u Return type r v e object or NULL C u Example Calculate receprocal of curve m and store as curve p p = Operate.Rec(m); C u r v e ] , X axis interval [float] , Output Curve (optional) Reg(Input Curve C u r v e ] ) [static] [ [ Description Regularise X axis intervals for a curve. Page J.116

463 User manual Version 15.0, May 2018 T/HIS Arguments Name Type Description v e Input C u r v e C Input Curve r u X axis interval New X axis interval float v e C u r u e to overwrite Output Curve (optional) r v C Return type v e u r object or NULL C Example Regularise curve m using a new X axis intreval of 0.0001. p = Operate.Reg(m,0.0001); ) [static] u r v e ] C [ Res(Curves , Output Curve (optional) [Array of Curve objects] Description Resultant of a group of curves Arguments Type Description Name C u r Array of Curve objects e objects Curves Array of v u r v e C u r v e to overwrite Output Curve (optional) C Return type u e object or NULL C r v Example Resultant of curves stored in curve array x p = Operate.Res(x); v r v e ] , Output Curve (optional) Rev(Input Curve C u r [ e ] ) [static] C u [ Description Reverse X and Y axis values Arguments Name Type Description u r v e Input C u r v e Input Curve C v u e C u r v e to overwrite Output Curve (optional) r C Return type r v e object or NULL C u Example Reverse X and Y axis values of curve m and store as curve p p = Operate.Rev(m); Page J.117

464 T/HIS User manual Version 15.0, May 2018 u r v e ] , Damping Factor [float] , Sampling Points [int] , X axis interval (optional) [float] , Output Rs(Input Curve [ C u r e ] ) [static] [ Curve (optional) v C Description Generate a reponse spectrum from input accelerations Arguments Type Description Name r v e Input C u r v e Input Curve C u Dammping factor Damping Factor float Sampling Points Number of points to sample over (30 or 70) int If defined then T-HIS will automatically regularise the curve using this value first X axis interval (optional) float Output Curve (optional) v e C u r v e to overwrite u C r Return type r e object or NULL C v u Example Generate a response spectrum using a factor of 0.05 and 70 sampling points. Regularise the input curve using an interval of 0.0001 first. p = Operate.Rs(m,0.05,70,0.0001); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Sin(Input Curve [ Description Calculate Sine Arguments Name Type Description v e Input C u r v e Input Curve C r u r v e C u r v e to overwrite C Output Curve (optional) u Return type r v e object or NULL C u Example Calculate Sine() of curve m and store as curve p p = Operate.Sin(m); C u r v e ] , Smoothing Factor [integer] , Output Curve (optional) Smooth(Input Curve C u r v e ] ) [static] [ [ Description Apply a smoothing factor to a curve Page J.118

465 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type v e Input C u r v e Input Curve C r u Smoothing Factor integer Number of points to average over C Output Curve (optional) C u r v e to overwrite e u r v Return type C v e object or NULL r u Example Smooth curve m using 7 points and store as curve p p = Operate.Smooth(m,7); u Sqr(Input Curve v e ] , Output Curve (optional) [ C u r v e ] ) [static] [ C r Description Square root of a curve Arguments Name Description Type r r e u C u v v e C Input Curve Input u r v e C u r v e to overwrite Output Curve (optional) C Return type u e object or NULL C r v Example Square root curve m and store as curve p p = Operate.Sqr(m); r r v e ] , Convert to [string] Stress(Input Curve [ C u [ v e ] ) [static] C u , Output Curve (optional) Description Convert between true and engineering stress Arguments Name Type Description u r v e Input C u r v e Input Curve C Type to convert to (True or Engineering) string Convert to v r e C C r v e to overwrite Output Curve (optional) u u Return type r v e object or NULL u C Example Convert curve m from engineering to true strees and store as curve p p = Operate.Stress(m,"True"); Page J.119

466 T/HIS User manual Version 15.0, May 2018 u r v e ] , 2nd Curve or constant [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) [static] Sub(1st Curve [ C Description Subtract Y axis values Arguments Name Type Description v v 1st r u r e e u C 1st Curve C r v e or real 2nd C u r v e or constant 2nd Curve or constant C u r u e C u r v e to overwrite Output Curve (optional) C v Return type r object or NULL v u e C Example To subtract the Y axis values for curve n from m and store as curve p p = Operate.Sub(m,n); To subtract 20.0 from the Y axis values in curve m and store as curve p p = Operate.Sub(m,20.0); [ u , Output Curve (optional) r v e ] ) [static] C Sum(Curves [Array of Curve objects] Description Sum of a group of curves Arguments Name Type Description Array of C u r v e objects Curves Array of Curve objects u C e C u r v e to overwrite Output Curve (optional) r v Return type r e object or NULL u v C Example Sum of curves stored in curve array x p = Operate.Res(x); u r v e ] , 2nd Curve or constant [ C Sux(1st Curve r v e or real] , Output Curve (optional) [ C u r v e ] ) [static] [ C u Description Subtract X axis values Arguments Type Name Description r r e 1st 1st Curve u v v e u C C u r v e or real 2nd C u r v e or constant 2nd Curve or constant C r u v e C u r v e to overwrite C Output Curve (optional) Page J.120

467 User manual Version 15.0, May 2018 T/HIS Return type v C r e u object or NULL Example To subtract the X axis values for curve n from m and store as curve p p = Operate.Sux(m,n); To subtract 20.0 from the X axis values in curve m and store as curve p p = Operate.Sux(m,20.0); r v e ] , Output Curve (optional) [ C u r Tan(Input Curve e ] ) [static] [ C u v Description Calculate Tangent Arguments Name Type Description Input Curve v e Input C u r v e C u r u v e C u r v e to overwrite Output Curve (optional) r C Return type r v e object or NULL u C Example Calculate Tangent() of curve m and store as curve p p = Operate.Tan(m); C u r v e ] , Y Acceleration [ C u r v e ] , Yaw Rate [ C u r v e ] , Dx [float] , Dy [float] , X0 [float] ) [static] Thiv(X Acceleration [ Description Theoretical Head Impact Velocity and the Post Impact Head Deceleration. These values are used to assess the performance of road side crash barriers. This function returns an array containing 2 curve objects. The 1st curve is the THIV curve and the 2nd is the PHD curve. The peak values of these curves are the corresponding THIV and PHD values and can be obtained using the e . y m a v property. C u r x Arguments Name Type Description r r e X Acceleration C u v v e u C X Acceleration u r v e Y Acceleration C u r v e Y Acceleration C v u e Yaw Rate C u r v e Yaw Rate r C Horizontal distance between occupants head and vehicle float Dx Lateral distance between occupants head and vehicle Dy float Horizontal distance between occupants head and vehicle CofG float X0 Return type u r v e objects. 1st curve : THIV curve 2nd curve : PHD curve= Array of C Page J.121

468 T/HIS User manual Version 15.0, May 2018 Example Calculate THIV and PHD curves x,y,z and distances Dx=0.6, Dy=0.3, X0=0.0. c_array = Operate.Thiv(x,y,z,0.6,0.3,0.0); thiv = c_array[0].ymax; phd = c_array[1].ymax; r C ] , Period [float] ) [static] e Tms(Input Curve [ v u Description 3ms Clip Calculation. After calculating the 3ms clip value for a curve the value can also be obtained from the curve v e . t m s property. In addition to the 3ms clip value the start and end time for the time window can also be C u using the r r v e . t m s _ t m i n and obtained using the u r v e . t m s _ t m a x properties. C u C Arguments Type Name Description r v e Input C u r u e Input Curve v C Clip period Period float Return type 3ms Clip value. Example Calculate 3ms clip for curve m, using a clip period of 0.003s. val = Operate.Tms(m,0.003); C u r v e ] , X value [float] , Y value [float] , Output Curve (optional) [ C u r v e ] ) [static] Translate(Input Curve [ Description Translate a curve Arguments Name Description Type v e Input C u r u e Input Curve C r v X translation value float X value float Y value Y translation value u v e C u r r e to overwrite Output Curve (optional) C v Return type r v e object or NULL C u Example Translate curve m by x=0.2, y=0.3 and store as curve p p = Operate.Translate(m,0.2,0.3); C u r v e ] , Lower Rib Acceleration [ C u r v Tti(Upper Rib Acceleration ] , T12 Acceleration [ C u r v e ] ) [static] e [ Description Thorax Trauma Index. Page J.122

469 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type v e Upper Rib Acceleration C u r v e Upper Rib Acceleration C r u v r Lower Rib Acceleration C u r v e Lower Rib Acceleration C u e e v T12 Acceleration C u r v r T12 Acceleration C u e Return type TTI value. Example Calculate TTI using curves x,y and z as inputs. val = Operate.TTi(x,y,z); u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] [ Va(Input Curve C Description Convert velocity spectrum to an acceleration spectrum Arguments Name Description Type r r e u C u v v e C Input Curve Input u r v e C u r v e to overwrite Output Curve (optional) C Return type u e object or NULL r v C Example Convert curve m and store as curve p p = Operate.Va(m); C r v e ] , A [float] , B [float] Vc(Input Curve [string] , Output Curve (optional) [ [ u r v e ] ) [static] C u , Calculation method Description Viscous Criteria calculate. The VC calculation can be done using 2 different calculation methods ECER95 and IIHS. Arguments Name Type Description u r v e Input C u r v e Input Curve C Constant A A float float Constant B B Calculation method string Either ECER95 or IIHS. u r v e C u r v e to overwrite Output Curve (optional) C Return type u r v e object or NULL C Page J.123

470 T/HIS User manual Version 15.0, May 2018 Example Calculate VC for curve m, using A=1.3, B=0.229 and the ECER95 method p = Operate.Vc(m,1.3,0.229,"ECER95"); r v e ] , Output Curve (optional) [ C u r v e ] ) [static] C Vd(Input Curve [ u Description Convert velocity spectrum to a displacment spectrum Arguments Type Name Description v v Input r u r e e u C Input Curve C r v e C u r v e to overwrite Output Curve (optional) C u Return type r e object or NULL C u v Example Convert curve m and store as curve p p = Operate.Vd(m); u r v e ] , 2nd Curve [ C u r v e Vec(1st Curve , 3rd Curve [ C [ r v e or real] , Output Curve (optional) [ C u r v e ] ) C u or real] [static] Description Vector magnitude of 3 curves Arguments Type Name Description v r 1st C u r e e 1st Curve v C u r v e or real 2nd C u 2nd Curve v e C u r u v e or real 2nd C r r v e C 3rd Curve u u r v e C u r v e to overwrite Output Curve (optional) C Return type u v e object or NULL r C Example Calculate vector magnitude of curves m,n,o and store as curve p p = Operate.Vec(m,n,o); C u r v e ] , 2nd Curve [ C u r v e or real] , Output Curve (optional) [ C u r v e ] ) [static] Vec2d(1st Curve [ Description Vector magnitude of 2 curves Page J.124

471 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type v e 1st C u r v e 1st Curve C r u r v or real 2nd C u e v e u C 2nd Curve r r v e C u r v e Output Curve (optional) C u to overwrite Return type C e object or NULL u v r Example Calculate vector magnitude of curves m and n and store as curve p p = Operate.Vec2d(m,n); v r v e ] , 2nd Curve Wif(1st Curve C u r [ e ] ) [static] C u [ Description Weigthed Integrated Factor (WIFAC) Correlation function. Arguments Name Type Description u r v e 1st C u r v e 1st Curve C u C e 2nd C u r v e 2nd Curve r v Return type Correlation value. Example Calculate the correlation between curves m and n. val = Operate.Wif(m,n); u r v e ] , Window Type [string] , percentage lead in (optional) [float] , Output Curve Window(Input Curve [ C u (optional) v e ] ) [static] r [ C Description Apply a smoothing window to a curve Arguments Description Name Type u C e Input C u r v e v Input Curve r Window type to apply (Hanning, cosine or exponetial) string Window Type percentage lead in (optional) float percentage lead in for cosine window u r v e C u r v e to overwrite Output Curve (optional) C Return type C u r v e object or NULL Page J.125

472 T/HIS User manual Version 15.0, May 2018 Example Apply a hanning window to curve m and store as curve p p = Operate.Window(m,"Hanning"); r v e ] , Output Curve (optional) [ C u r v e ] ) [static] Zero(Input Curve C [ u Description Translate curve to 0,0 Arguments Type Name Description v v Input r u r e e u C Input Curve C r v e C Output Curve (optional) r v e to overwrite C u u Return type v e object or NULL u r C Example Translate curve m to (0,0) and store as curve p p = Operate.Zero(m); u r v e ] , Output Curve (optional) [ C u ZeroX(Input Curve v e ] ) [static] [ C r Description Translate curve to X=0.0 Arguments Name Type Description u r v e Input C u r v e Input Curve C u C e C u r v e to overwrite Output Curve (optional) r v Return type r v e object or NULL C u Example Translate curve m to X=0 and store as curve p p = Operate.ZeroX(m); C u r v e ] , Output Curve (optional) [ C u r v e ] ) [static] ZeroY(Input Curve [ Description Translate curve to Y=0.0 Arguments Type Description Name u r v e Input C u r v e Input Curve C r u v e C u r v e to overwrite C Output Curve (optional) Page J.126

473 User manual Version 15.0, May 2018 T/HIS Return type v C r e u object or NULL Example Translate curve m to Y=0 and store as curve p p = Operate.ZeroY(m); u v e ] , Reference Value [float] dB(Input Curve [ C C r v e ] ) [static] [ u r , Output Curve (optional) Description Converts a curve to dB (y = 20.0*log(y/yref)) Arguments Name Type Description r Input Curve e Input C u r v e C u v Reference value Reference Value float r v e C u C v e to overwrite Output Curve (optional) r u Return type r v e object or NULL C u Example Convert curve m to dB’s using a reference value of 10.0 and store as curve p p = Operate.dB(m,10.0); v u v e ] , Weighting Type [String] , Output Curve (optional) [ C u [ r e ] ) [static] C dBA(Input Curve r Description Applies A-weigthing to a curve (converst from dB to dBA) Arguments Name Type Description u r v e Input C u r v e Input Curve C Apply either Narrow band (narrow) or Octave band (octave) A weighting String Weighting Type v r e C C r v e to overwrite Output Curve (optional) u u Return type C r v e object or NULL u Example Apply narrow band A-weighting to convert curve m from dB to dBA and store as curve p p = Operate.dBA(m,"narrow"); Page J.127

474 T/HIS User manual Version 15.0, May 2018 Options class r The Options class enables you to access several options in T-HIS. . . o e . M Options class properties Properties for widgets Description Type Name W i d g e t s that can be made for one W i n d max_widgets w . The default value integer The maximum number of o is 1000 W i n d o w . E The maximum number of lines that can be made for a r o r ( ) , max_window_lines integer r n d o w . I n f o r m a t i o n ( ) , W i n d o w . M e s s a g e ( ) , W i n d o w . Q u e s t i o n ( ) or W i n d o w . W a r n i n g ( ) W i window. The default value is 25 Detailed Description The Options class is used to get/set options that T-HIS uses for certain functions. The options are available as class properties. See the documentation below for more details. Page J.128

475 User manual Version 15.0, May 2018 T/HIS PopupWindow class r The PopupWindow class allows you to create popup windows for a graphical user interface. . . o e M . Member functions d • e H () i PopupWindow properties Type Name Description boolean If the popup window will remain mapped when a button is pressed in it. By default (false) when a persistent button is pressed in the popup window the popup will be unmapped. If set to true then the popup d e ( ) i H will remain mapped until the user clicks out of the window or hides it by calling Detailed Description d g e t s in) and link them to W i d g e t s . W The PopupWindow class allows you to make popup windows (that you can place i i g e t the popup is linked to. The following very simple d The popup window is then displayed by right clicking on the W example shows how to create a popup window and link it to a label Widget. // Create popup window var pw = new PopupWindow(); // Create some widgets in the popup window var pl = new Widget(pw, Widget.LABEL, 1, 30, 1, 7, "Label"); var pb = new Widget(pw, Widget.BUTTON, 1, 30, 7, 13, "Button"); var pt = new Widget(pw, Widget.TEXTBOX, 1, 30, 20, 26, "Textbox"); // Create window with title "Popup example" from 0.8-1.0 in x and 0.5-0.6 in y var w = new Window("Popup example", 0.8, 1.0, 0.5, 0.6); // Create label widget var l = new Widget(w, Widget.LABEL, 1, 50, 1, 7, "Right click for popup..."); // link popup window to widget l.popupWindow = pw; // Assign the onPopup callback method to the function ’do_popup’ // This is only required if you want to make any changes before the popup appears l.onPopup = do_popup; // Show the widget and start event loop w.Show(); //////////////////////////////////////////////////////////////////////////////// function do_popup() { Message("Showing popup"); } d See the documentation below and the e t class for more details. g W i Constructor new PopupWindow() Description o p u p W i n d o w object. Create a new P Arguments No arguments Return type p u p W i P d o w object n o Page J.129

476 T/HIS User manual Version 15.0, May 2018 Example To create a PopupWindow containing the buttons "Create" and "Edit" and link it to button b: var pw = new PopupWindow(); var c = new Widget(pw, Widget.BUTTON, 1, 30, 1, 7, "Create"); var e = new Widget(pw, Widget.BUTTON, 1, 30, 7, 13, "Edit"); b.popupWindow = pw; Details of functions Hide() Description Hides (unmaps) the popup window. Arguments No arguments Return type No return value Example To hide popup window w: w.Hide(); Page J.130

477 User manual Version 15.0, May 2018 T/HIS Symbol class r . . . M e o The Symbol class contains constants relating to curve symbols. Symbol constants Description Name Circle symbol Symbol.CIRCLE Cross symbol Symbol.CROSS Symbol.DIAMOND Diamond symbol Symbol.DOT Dot symbol Symbol.HOURGLASS Hourglass symbol Symbol.NONE No symbol Symbol.SQUARE Square symbol Symbol.STAR Star symbol Symbol.TRIANGLE Triangle symbol Detailed Description The Symbol class is used to define the symbol style used by curves: p.symbol = Symbol.TRIANGLE; Page J.131

478 T/HIS User manual Version 15.0, May 2018 Units class r . . . M o e The Units class contains constants relating to curve units. Class functions E R (mass [float] , time [float] , length [float] , angle [float] , temperature [float] , current (optional) [float] ) • U S Units constants Name Description Units.ACCELERATION Acceleration units Units.AREA Area units Conductivity units Units.CONDUCTIVITY Current units Units.CURRENT Units.DENSITY Density units Displacement units Units.DISPLACEMENT Electric Field Vector units Units.ELECTRIC_FIELD_VECTOR Energy units Units.ENERGY Units.ENERGY_DENSITY Energy Density units Units.FLUX Thermal Flux units Units.FORCE Force units Force per unit width units Units.FORCE_WIDTH Units.FREQUENCY Frequency units Units.LENGTH Length units Magnetic Flux Vector units Units.MAGNETIC_FLUX_VECTOR MAss units Units.MASS Units.MASS_FLOW Mass Flow rate units Units.MOMENT Moment units Momentum units Units.MOMENTUM Units.MOMENT_WIDTH Moment per unit width units No units Units.NONE Units.POWER Power units Units.PRESSURE Pressure units Units.Q_CRITERION Q Criterion units Rotation units Units.ROTATION Units.ROTATIONAL_ACCELERATION Rotational Acceleration units Units.ROTATIONAL_VELOCITY Rotational Velocity units Strain units Units.STRAIN Units.STRESS Stress units Units.TEMPERATURE Temperature units Units.THERMAL_DIFFUSIVITY Thermal Diffusivity units Time units Units.TIME Units.UNKNOWN Unknown units Units.VECTOR_POTENTIAL Vector Potential units Page J.132

479 User manual Version 15.0, May 2018 T/HIS Units.VELOCITY Velocity units Viscosity units Units.VISCOSITY Volume units Units.VOLUME Vorticity units Units.VORTICITY Work units Units.WORK Detailed Description The Units class is used to define the units for each axis of a curve: p.x_axis_units = Units.LENGTH Details of functions [float] USER(mass [float] , angle [float] , temperature [float] , current (optional) [float] ) [static] [float] , time , length Description Setup a user defined UNIT Arguments Description Type Name float Power for mass dimensions. mass time Power for time dimensions. float length float Power for length dimensions. Power for angle dimensions. float angle Power for temperature dimensions. temperature float Power for current dimensions. float current (optional) Return type 0 (user defined) Example To set the y-axis unit of curve l to (m/s)^2: l.y_unit = Units.USER(0.0,2.0,-2.0,0.0,0.0,0.0); Page J.133

480 T/HIS User manual Version 15.0, May 2018 UnitSystem class r . . . M e o The UnitSystem class contains constants relating to curve unit systems. UnitSystem constants Description Name U1 unit system (m,ks,s) UnitSystem.U1 UnitSystem.U2 U2 unit system (mm,T,s) UnitSystem.U3 U3 unit system (mm,kg,ms) UnitSystem.U4 U4 unit system (mm,gm,ms) UnitSystem.U5 U5 unit system (ft,slug,s) UnitSystem.U6 U6 unit system (m,T,s) Detailed Description The UnitSystem class is used to define the Unit System for a curve: p.UnitSystem = UnitSystem.U1 Page J.134

481 User manual Version 15.0, May 2018 T/HIS Widget class r The Widget class allows you to create components for a graphical user interface. . . o e M . Class functions r r e s s e d () • C l t P l i P e r U n e t () • P i x s d t r e s s e P () i h S • f i n g L • n g t h (text [string] , monospace (optional) [boolean] , fontSize (optional) [integer] ) S t r e Member functions W i d g e t I t e m (item [ W i d g e t I t e m ] , position (optional) [integer] ) A • d d r c l e • [constant] , fill [boolean] , xc [integer] , yc [integer] , radius [integer] ) C i (colour l a r () • C e e C S e l e c t i o n () • a l r o s (colour (optional) [constant] ) • C r s e t e () e D • l m p I m a g e S t r • n g (filename [string] , format (optional) [constant] ) D u i i e () • H d e A t (index [integer] ) t m I • n e (colour • , x1 [integer] , y1 [integer] , x2 [integer] , y2 [integer] ) L i [constant] o l y g o n (colour [constant] , fill [boolean] , x1 [integer] , y1 [integer] , x2 [integer] , y2 [integer] , ... xn [integer] , ... • P ) [integer] yn a • m a g e F i l e (filename [string] , justify (optional) [constant] , transparent (optional) [colour value (integer)] , e d R I ) [integer] tolerance (optional) n I m a g e S t r i e g (string [string] , justify (optional) [constant] , transparent (optional) [colour value (integer)] , R • d a tolerance (optional) [integer] ) c • a n g l e (colour [constant] , fill [boolean] , x1 [integer] , y1 [integer] , x2 [integer] , y2 [integer] ) R e t e m v e A l l W i d g o t I t e m s () R • e e m o v e W i d g e t I t e m (item [ W i d g e t I t e m ] ) • R h S () • o w a i c () t • t S c k (colour (optional) [constant] ) • T i m t l I t e a s () o • T i d g e t I t e m s () • W Widget constants Description Name Button widget Widget.BUTTON Checkbox widget Widget.CHECKBOX Combobox widget Widget.COMBOBOX Widget.LABEL Label widget Listbox widget Widget.LISTBOX Text input widget Widget.TEXTBOX Constants for Justification Name Description Widget.BOTTOM Bottom justification Widget.CENTRE Centre (horizontal) justification Widget.LEFT Left justification Widget.MIDDLE Middle (vertical) justification Widget.RIGHT Right justification Widget.SCALE Image will be scaled to fit widget Top justification Widget.TOP Constants for Selection Page J.135

482 T/HIS User manual Version 15.0, May 2018 Name Description i W e t I t e m s in a L i s t B o x Widget can be selected. When the user selects a Multiple d Widget.SELECT_ENHANCED g e selected. However, if I t e m the selection is cleared and the new W i d g e t I t e m g W i d t m g t I t e d , the clicked W i d g e t I t e e the user presses the Ctrl key when clicking on a W i m d e t I t e g s are left untouched. If the user presses the i W gets toggled and all other m Shift key while clicking on a g e t I t e m , all W i d g e t I t e m s between the last selected W i d d e t I t e m and the clicked W i d g e t I t e m are selected or unselected, depending on the W i g d t e t I i e m . state of the clicked W g L i g e t W t e m s in a d i s t B o x Widget can be selected. When the user selects a Multiple Widget.SELECT_MULTIPLE I d g e t I t e m , the selection status of that W i d g e t I t e m is toggled and the other W i d i t I t e m s are left alone. W g e i o g e t I t e m in a L i s t B W x Widget can be selected Widget.SELECT_NONE No d L W g e t I t e m in a d i s t B o x Widget can be selected. When the user selects a A single Widget.SELECT_SINGLE i d g e t I t e m , any already-selected W i d g e t I t e m becomes unselected, and the user W i i W e t I t e m by clicking on it. cannot unselect the selected d g Constants for Image RGB format Description Name Widget.RGB24 24 bits for RGB data in widget images Widget.RGB8 8 bits for RGB data in widget images Constants for Colour Name Description Colour black Widget.BLACK Colour blue Widget.BLUE Colour cyan Widget.CYAN Widget.DARKBLUE Colour dark blue Widget.DARKGREEN Colour dark green Widget.DARKGREY Colour dark grey Colour dark red Widget.DARKRED Widget.DEFAULT Default colour for widgets Widget.GREEN Colour green Colour grey Widget.GREY Colour light grey Widget.LIGHTGREY Colour magenta Widget.MAGENTA Widget.ORANGE Colour orange Colour red Widget.RED Widget.WHITE Colour white Colour yellow Widget.YELLOW Widget properties Name Type Description active logical If widget is active (true) or disabled (false) Page J.136

483 User manual Version 15.0, May 2018 T/HIS W i d g e t . B L A C K , W i d g e t . W H I T E , background constant Widget background colour. Can be: g i . R E D , W i d g e t . G R E E N , W i d g e t . B L U E , W i d g e t . C Y A N , W e d t e L . M A G E N T A , W i d g e t . Y E g L O W , W i d g e t . D A R K R E D , W i d t R g . D A R K G R E E N , W i d g e t . D A t K B L U E , W i d g e t . G R E Y , d i W e g e t . D A R K G R E Y , W i d g e t . L I G H T G R W Y , W i d g e t . O R A N G E , i d E d e t . D E F A U L T W i g integer bottom Widget bottom coordinate integer fontSize Widget font size in points. Currently only supports the following sizes: 8, 10, 12, 14, 18, 24. Can be used only with Widget.LABEL and Widget.BUTTON. Both LATIN1 and UTF-8 encoding is supported on Windows but Linux only supports LATIN1 encoding at the moment. i d g e t . B L A C foreground , W Widget foreground colour. Can be: d g e t . W H I T E , constant W i K g e t . R E D , W i d g e t . G R E E N , W i d g e t W B L U E , W i d g e t . C Y A N , i d . d e t . M A G E N T A , W i d g e t . Y E g L O W , W i d g e t . D A R K R E D , i W L d g e t . D A R K G R E E N , W i d g e t . D A R K B L U E , W i d g e t . G R E Y , W i d i t . D A R K G R E Y , W i d g e t . L I G H T G R E Y , W i d g e t . O R A N G E , W g e g e . D E F A U L T i W t d Widget hover text hover string Height of widget image (pixels) integer imageHeight (read only) Width of widget image (pixels) imageWidth integer (read only) W i d g e t . L E F T , W i d g e t . R I G H T or W i d g e t . C E N T R E justify constant Widget justification. Can be: X E B O X widgets is always left justified. (default). Note that text in T T integer left Widget left coordinate integer lineWidth Width of lines when drawing graphics (initially 1; values 1-255 allowed). e property t t macroTag string x Tag to use for this widget when recording a macro. If empty then the value will be used. true if the widget uses a monospace font instead of a proportional width font monospace boolean b e l and b u t t o n (default). L a Widgets only. Function to call when the text in a E X T B O X widget or the selection in a onChange function T M B B O X widget is changed. The Widget object is accessible in the function O C O using the ’this’ keyword (see the example below for more details of how to define the function and how to use the ’this’ keyword). To unset the function set the property to null. Note that this function is called when the user actually types something into i d g e t . t e x t the textbox, or selects an item in the combobox, NOT when the W . property changes B U T T O N , C H E C K B O X or C O M B O B O X widget is onClick function Function to call when a clicked. The Widget object is accessible in the function using the ’this’ keyword (see the example below for more details of how to define the function and how to use the ’this’ keyword). To unset the function set the property to null. Note that this function is called when the user actually clicks on the button, NOT when the W e t . p u s h e d property changes . For the C O M B O B O X widget i d g before the list of items is mapped. the function is called B U T T O N , L A B function L or T E X T B O X widget is right clicked onPopup Function to call when a E i d g e t object is accessible in the function using the ’this’ to map a popup. The W d o p W i n d o w can then be found by using the p o p u p W i n u o w keyword. The p P i g e t . d property of the W the popup is mapped so you can change the widgets before The function is called in the popup as required. Function to call for a widget when t i m e r D e l a y ms have elapsed after setting this. onTimer function e i r R e p e a t is set this function will be called repetitively, every m Additionally if t m e r D e l a y ms. The Widget object is accessible in the function using the ’this’ t i keyword. To unset the function set the property to null. Note that as soon as this property is set the timer starts! Page J.137

484 T/HIS User manual Version 15.0, May 2018 P o p u p W i n d o w will be mapped relative to this widget. Can be W i d g e t . L E F T , popupDirection constant How g i . R I G H T , W i d g e t . T O P or W i d g e t . B O T T O M (default). W e d t o o p W i n d u w . popupSymbol P p logical TRUE (default) if a symbol will be shown for a u p W i n d o w W P o p u p popupWindow i n d o w for this Widget. Only available for B u t t o n , L a b e l P T e x t b o x o p and o u p W i n d o w from a W i d g e t set to null. object p Widgets. To remove a P T i g e t . B U d T O N with W If widget is pushed (true) or not (false). This only affects pushed logical d g e t . t o g g l e property set, and W i d g e t . the H E C K B O X widgets. W i C Widget right coordinate right integer E L t B o x Widgets. Can be: W i d g e t . S s L E C T _ N O N E , select i constant Selection method for g e t . S E L E C T _ S I N G L E or W i d g e t . S E L E C T _ M U L T I P L E W i d or d e t . S E L E C T _ E N H A N C E D (default). W i g o d e t I t e m selectedItem i i d g e t I t e m that is currently selected for a C g m b o B o x Widget. If null no W W i g e t I d e m is selected. W object t i s t B o x Widget this property contains the last W i d g e t I t e m that was For a L i W e t I t e m s ( ) to d (de)selected. To get a list of all of the selected WidgetItems use g l s t e d property. e return all of the WidgetItems and inspect the WidgetItem e c S h w ( ) and o true if the widget is visible. To alter the visibility of a widget use the shown (read boolean only) H ) m e t h o d s . i d e ( C o b o B o x Widget this will be the text for the currently text string Widget text. For a m g e t I t e m d selected W i true if the widget text is hidden and replaced by asterisks. This may be used to boolean textHidden x t B o x Widgets only. create textboxes to type passwords in. T e o integer T i m e r will be called. The initial value is timerDelay Delay in ms before the function set for n m t R e p e a t . 1000 (ms). Also see e i r r n i m e T will be called once (false) or repeatedly (true). The If the function set for logical timerRepeat o m e r D initial value is false. Also see l a y . t i e If widget can be toggled (true) or not (false). This only affects i d g e t . B U W T O N toggle logical T widgets. integer Widget top coordinate top W i n d o w object The W window (read n d o w that this widget is defined in i only) s i n e s , c i r c l e s , p o l y g o n s and r e c t a n g l e l integer X resolution of button when drawing xResolution (initially 100). X coordinates on the Widget can be from 0 (on the left of the d g e t . L A B E L W widget) to xResolution (on the right of the widget). Available for i T i e t . B U g T O N Widgets. W and d Y resolution of button when drawing l i n e s , c i r c l e s , p o l y g o n s and r e c t a n g l e s yResolution integer (initially 100). Y coordinates on the Widget can be from 0 (on the top of the widget) to yResolution (on the bottom of the widget). Available for Widgets. g e t . L A B E L and W i d g e t . B U T T O N i W d Detailed Description W d o w for a graphical user interface. The Widget class allows you to create Widgets (buttons, textboxes etc) in a n i Callback functions can be declared for widgets to give actions when a button is pressed or the text in a textbox is selected etc. The following example displays various widgets in a window. Several callback methods are used. The exit button allows the user to exit the script but the button is only made active if the checkbox widget is ticked. If the button widgets are pressed feedback is given to the user var count = 0; // Create window var w = new Window("Test", 0.8, 1.0, 0.5, 0.6); // Create all of the widgets var l = new Widget(w, Widget.LABEL, 1, 30, 1, 7, "Text:"); var t = new Widget(w, Widget.TEXTBOX, 31, 80, 1, 7, "Enter text"); var b = new Widget(w, Widget.BUTTON, 1, 30, 8, 14, "Press me"); var b2= new Widget(w, Widget.BUTTON, 31, 61, 8, 14, "Don’t press me"); var c = new Widget(w, Widget.CHECKBOX,62, 68, 8, 14); var l2= new Widget(w, Widget.LABEL, 1, 80, 15, 21, "You haven’t pressed the Page J.138

485 User manual Version 15.0, May 2018 T/HIS button yet..."); var e = new Widget(w, Widget.BUTTON, 1, 21, 22, 28, "Exit"); // Allow button widget b2 to toggle b2.toggle = true; // The exit button is initially inactive e.active = false; // Assign the callback functions b.onClick = clicked; b2.onClick = clicked; c.onClick = clicked; t.onChange = changed; e.onClick = confirm_exit; // Show the window and start event loop w.Show(); //////////////////////////////////////////////////////////////////////////////// function clicked() { // If checkbox is clicked then set the state of the exit button if (this === c) { Message("Checkbox clicked"); e.active = c.pushed; } // If the "Don’t press me’ button is pressed then change the colour if the button is pressed in. else if (this === b2) { Message("I said don’t press!!!"); if (b2.pushed) b2.background = Widget.WHITE; else b2.background = Widget.DEFAULT; } // If the "Press me" button is pressed then update the text in the label widget // with how many times the button has been pressed. else { Message("You pressed..."); count++; l2.text = "Button pressed " + count + " times"; } } //////////////////////////////////////////////////////////////////////////////// function changed() { // If the user has changed the text in the textbox then give a message in // the dialogue box Message("Text has changed to " + this.text); } //////////////////////////////////////////////////////////////////////////////// function confirm_exit() { // Map confirm box var ret = Window.Question("Confirm exit", "Are you sure you want to quit?"); // If the user has answered yes then exit from the script. if (ret == Window.YES) Exit(); } i d g e t . L A B E L and W i d g e t . B U T T O N widgets. If these W Graphics (lines, circles, rectanges etc) can be drawn on methods are used the resolution of the widget is 100 units in x and y and the origin is at the top left of the widget. See i d e t I t e m W W g n d o w classes for more details. i the documentation below and the and Constructor W i n d o w or P o p u p W i n d o w ] , type [constant] , left [integer] , right [integer] , top [integer] , new Widget(window [ , text (optional) ) [string] [integer] bottom Description i d g e t object. Create a new W Page J.139

486 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type d o w or window W n i that widget will be created in w o d n i W W i n d o w or P o p u p p w n i W d u o p o P i d g e t . L A B E L , W i d g e type . B U T T O N , W i d g e t . C H E C K B O X , constant Widget type. Can be W t g W t . C O M B O B O X , W i d g e t . L I S T B O X or W i d g e t . T E X T B O X . i d e left coordinate of widget left integer right coordinate of widget integer right top integer top coordinate of widget bottom coordinate of widget integer bottom text Text to show on widget (optional for LABEL, BUTTON and TEXTBOX, not string (optional) required for CHECKBOX, COMBOBOX and LISTBOX) Return type g e t object W i d Details of functions m d g e t I t e i ] , position (optional) [integer] ) W [ AddWidgetItem(item Description i d g e t I t e m to the W i d g e t . Also see W i d g e t . R e m o v e A l l W i d g e t I t e m s and W i d g e t . R e m o v e W i d g e t I t e m . Adds a W Arguments Type Name Description e d t I t e m W i d g e t I t e m to add W item g i Position on W i d g e t to add the W i d g e position I t e m . Any existing W i d g e t I t e m s will be shifted integer t W d g e t I t e m i (optional) down as required. If omitted the will be added to the end of the existing ones. . Note that positions start at 0 Return type No return value Example To add WidgetItem wi to widget w: w.AddWidgetItem(wi); , fill [boolean] , xc [integer] , yc [integer] , radius [integer] ) Circle(colour [constant] Description d g e t . L A B E L and W i d g e t . B U T T O N widgets. The coordinates are i W Draws a circle on the widget. Only possible for R e s o l u t i o n and y R e s o l u t i o n for more details. Note that the widget local to the Widget, not the Window. See properties x graphics will only be updated when the widget is redrawn. This is to allow the user to do multiple drawing commands S h o w ( ) . on a widget. To force the widget to be redrawn call Page J.140

487 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type o r e g r o u n d for colours. colour constant f Colour of circle. See fill boolean If circle should be filled or not. xc integer x coordinate of centre of circle. yc integer y coordinate of centre of circle. integer radius radius of circle. Return type no return value Example To draw a red filled circle, radius 25, at (50, 50) on widget w: w.Circle(Widget.RED, true, 50, 50, 25); Clear() Description Clears any graphics on the widget. Only possible for W e t . L A B E L and W i d d e t . B U T T O N widgets. Note that the i g g widget graphics will only be updated when the widget is redrawn. This is to allow the user to do multiple drawing h o w ( ) . commands on a widget. To force the widget to be redrawn call S Arguments No arguments Return type no return value Example To clear any graphics for widget w: w.Clear(); ClearSelection() Description i d g e t I t e m s on the widget. Only possible for W i d g e t . C O M B O B O X and W i d g e t . L I S T B O X Clears selection of any W widgets. Arguments No arguments Return type no return value Example To clear selection of any WidgetItems for widget w: w.ClearSelection(); Page J.141

488 T/HIS User manual Version 15.0, May 2018 Cross(colour (optional) [constant] ) Description widgets. g e t . L A B E L and W i d g e t . B U T W O N d i Draws a cross symbol on the widget. Only possible for T Arguments Type Name Description u Colour of cross symbol. See o r e g constant o f n d for colours. If omitted, current foreground colour colour r (optional) is used. Return type no return value Example To draw a red cross symbol on widget w: w.Cross(Widget.RED); CtrlPressed() [static] Description Check to see if the Ctrl key is pressed Arguments No arguments Return type true/false Example To test if someone has the Ctrl key pressed: if (Widget.CtrlPressed()) { ... } Delete() Description Deletes the widget from PRIMER (removing it from the window it is defined in) and returns any memory/resources used for the widget. This function should not normally need to be called. However, sometimes a script may want to recreate widgets in a window many times and unless the old widgets are deleted PRIMER will reach the maximum p t i o n s . m a x _ w i d g e t s ). To avoid this problem this method can be used to force number of widgets for a window ( O . PRIMER to delete and return the resources for a widget. Do not use the Widget object after calling this method Arguments No arguments Return type no return value Example To delete widget w: w.Delete(); Page J.142

489 User manual Version 15.0, May 2018 T/HIS [constant] ) DumpImageString(filename [string] , format (optional) Description Dumps a string representation of an image for a widget to a file in a form that can be used by i e t . R e a d I m a g e S t r i n g ( ) . Only possible for W i d g e t . L A B E L and W i d g e t . B U T T O W widgets. N g d Arguments Description Type Name filename string Filename to dump string representation to G W i d g e t . R G B 8 or W i d g e t format R constant B 2 4 . Before version 15 PRIMER only used 8 bits to store Can be . (optional) RGB (red, green and blue) colour information for widget images. In version 15 widget images have been changed to use 24 bits to store RGB information (8 bits for red, 8 bits for green and 8 B d e t . bits for blue). Both formats are supported. If omitted the new G g 2 4 format will be i W R i d g e t . R e a d I m a g e S t r i n g ( ) for more details. used. See W Return type no return value Example To dump the image data to file ’image_data’ for widget w with the old 8 bit RGB representation: w.DumpImageString(’image_data’, Widget.RGB8); To dump the image data to file ’image_data’ for widget w with 24 bit RGB representation: w.DumpImageString(’image_data’, Widget.RGB24); Hide() Description Hides the widget on the screen Arguments No arguments Return type No return value Example w To hide widget w.Hide(); ItemAt(index [integer] ) Description i d g e t I t e m object used at index in this Widget. See also W i d g e t . T o t a l I t e m s ( ) and W i d g e t . W i d g e t I t e m s ( ) . Returns the W Arguments Type Description Name index to return W i d g e t I t e m for. Note that indices start at 0 . index integer Return type t g e t I d e m object. W i Page J.143

490 T/HIS User manual Version 15.0, May 2018 Example To loop over the WidgetItems used in Widget w for (i=0; i

491 User manual Version 15.0, May 2018 T/HIS [boolean] , x1 [integer] , y1 [integer] , x2 [integer] , y2 [integer] , ... xn [integer] , ... Polygon(colour [constant] , fill ) yn [integer] Description d g e t . L A B E L and W i d g e t . B U T T O N widgets. The coordinates are W i Draws a polygon on the widget. Only possible for o e o R u t i o n and y R e s o l u t i s n for more details. Note that the widget local to the Widget, not the Window. See properties x l graphics will only be updated when the widget is redrawn. This is to allow the user to do multiple drawing commands o w ( ) . h S on a widget. To force the widget to be redrawn call Arguments Description Type Name Colour of polygon. See f o r e g r o u n d for colours. colour constant If polygon should be filled or not. boolean fill x1 x coordinate of point 1. integer y1 integer y coordinate of point 1. x coordinate of point 2. integer x2 integer y2 y coordinate of point 2. ... xn integer x coordinate of point n. ... yn integer y coordinate of point n. Alternatively instead of x1, y1 etc you can specify a single argument which is an array of coordinates to use. In either case the number of points (x, y pairs) is limited to 30. Any extra points will be ignored. Return type no return value Example To draw a red filled triangle with corners (20, 20) and (50, 80) and (80, 20) on widget w: w.Polygon(Widget.RED, true, 20, 20, 50, 80, 80, 20); ReadImageFile(filename [string] , justify (optional) , transparent (optional) [colour value (integer)] , [constant] ) tolerance (optional) [integer] Description g d g e t . L A B E L and W i d i e t . B U T T O N widgets. W Reads an image from a file to show on the widget. Only possible for The image will be shown on the widget underneath any text. Note that due to the way that colours are used for menus in PRIMER only a small number of colours are available for Widget images. Black and white images will display without any issues but colour images will be displayed with a reduced set of colours. Page J.145

492 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type string filename Image file (BMP, GIF, JPEG or PNG) to read. To remove an image use null. g i g e t . L E F T , W i d d e t . R I G H T or Widget justification. Can be a bitwise or of constant justify W d g e t . C E N T R E and W i d g e t . T O P , W i d g e t . M I D D L E or W i d g e t . (optional) B T T O M . Additionally W i O d e t . S C A L E can be used to scale the image (either reducing or enlarging it) so that it W i g fills the widget. If omitted the default is Widget.CENTRE|Widget.MIDDLE without scaling. colour Transparent colour. Must be a colour returned by Colour.RGB() in PRIMER. If given then transparent (optional) this colour will be replaced by a transparent colour. i.e. the widget background colour will value (integer) be shown. If omitted or null no transparency will be used. integer Tolerance for transparent colour (0-255). tolerance Any pixels in the image that have a red, green and blue colour value within (optional) tolerance of the transparent colour will be transparent. is tolerance For example if the transparent colour was given as Colour.RGB(255, 0, 0) and and blue value 0 will be made 0 only pixels which have red value 255 and green value 0 transparent. is 4, pixels which have red values between 251 and 255 green values tolerance If and between 0 and 4 and blue values between 0 and 4 will be made transparent. If omitted a value of 8 will be used. Return type no return value Example To read image example.png for widget w and place it at the top left: w.ReadImageFile("example.png", Widget.TOP|Widget.LEFT); To read image example.png for widget w and place it at the top left, scaling it to fit the widget: w.ReadImageFile("example.png", Widget.TOP|Widget.LEFT|Widget.SCALE); To read image example.png for widget w and place it at the top left, replacing red with a transparent colour: w.ReadImageFile("example.png", Widget.TOP|Widget.LEFT, Colour.RGB(255, 0, 0)); To remove an image from widget w: w.ReadImageFile(null); [string] , transparent (optional) [colour value (integer)] , , justify (optional) [constant] ReadImageString(string ) tolerance (optional) [integer] Description i d g e t . D u m p I m a g e S t r i n g ( ) to show on the widget. Only Reads an image from a JavaScript string previously created by W i W e t . L A B E L and W i d g e t . B U T T O N widgets. The image will be shown on the widget underneath any possible for d g text. Note, prior to version 15 of PRIMER only a small number of colours were available for Widget images. In version 14 and earlier the RGB (red, green and blue) information for each pixel in the image was packed into a single byte (8 bits) n g e t with 3 bits for red, 3 for green and 2 for blue. D u m p I m a g e S t r i W g ( ) always returned the string beginning with i d . i g e t . R d B 8 . "RRRGGGBB_RLE" which is this 8 bit format with run length encoding. This is format W G In version 15 support for Widget images was enhanced to give 24bit support for colours. The RGB information for each i d g e t . R G B 2 4 . pixel has 8 bits for red, 8 bits for green and 8 bits for blue. This is format W g i g e t . D u m p I m a g e S t r i n g ( ) can either return the the old 8 bit format W i d d e t . R G B 8 (string beginning From version 15 W B i g e t . R G d 2 4 (string beginning with "RGB24_Z"). with "RRRGGGBB_RLE") or return the the new 24bit format W ReadImageString supports both formats. Page J.146

493 User manual Version 15.0, May 2018 T/HIS Arguments Name Description Type i d g e t . D u m p I m a g e S t r i n g ( ) . To string string W String containing the image data previously created by remove an image use null. d d g e t . L E F T , W i i g e t . R I G H T or constant justify W Widget justification. Can be a bitwise or of d g e t . C E N (optional) R T and W i d g e t . T O P , W i d g e t . M I D D L E or W i d g e t . B O T T O M . Additionally W i E d e t . S C A L E can be used to scale the image (either reducing or enlarging it) so that it W i g fills the widget. If omitted the default is Widget.CENTRE|Widget.MIDDLE without scaling. transparent Transparent colour. Must be a colour returned by >Colour.RGB() in PRIMER. If given then colour this colour will be replaced by a transparent colour. i.e. the widget background colour will (optional) value (integer) be shown. If omitted or null no transparency will be used. tolerance integer Tolerance for transparent colour (0-255). Only used for the new 24bit format i d g e t . R G B 2 4 (strings beginning with "RGB24_Z"). Ignored for the old 8 bit format (optional) W d i t . R G B 8 (strings beginning with "RRRGGGBB_RLE"). W g e tolerance Any pixels in the image that have a red, green and blue colour value within of the transparent colour will be transparent. is For example if the transparent colour was given as Colour.RGB(255, 0, 0) and tolerance blue value 0 will be made and green value 0 and 0 only pixels which have red value 255 transparent. green values tolerance is 4, pixels which have red values between 251 and 255 If and between 0 and 4 and blue values between 0 and 4 will be made transparent. If omitted a value of 8 will be used. Return type no return value Example To read image data from string s for widget w and place it at the top left: w.ReadImageString(s, Widget.TOP|Widget.LEFT); To read image data from string s for widget w and place it at the top left, scaling it to fit the widget: w.ReadImageString(s, Widget.TOP|Widget.LEFT|Widget.SCALE); To read image data from string s for widget w and place it at the top left, replacing red with a transparent colour: w.ReadImageString(s, Widget.TOP|Widget.LEFT, Colour.RGB(255, 0, 0)); To remove an image from widget w: w.ReadImageString(null); [boolean] , x1 [integer] , y1 Rectangle(colour , x2 [integer] , y2 [integer] ) [constant] , fill [integer] Description i d g e t . L A B E L and W i d g e t . B U T T O N widgets. The coordinates are Draws a rectangle on the widget. Only possible for W u R s o l u t i o n and y R e s o l e t i o n for more details. Note that the widget local to the Widget, not the Window. See properties x graphics will only be updated when the widget is redrawn. This is to allow the user to do multiple drawing commands S h o w ( ) . on a widget. To force the widget to be redrawn call Page J.147

494 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type o r e g r o u n d for colours. colour constant f Colour of rectangle. See fill boolean If rectangle should be filled or not. integer x1 x coordinate of first corner of rectangle. integer y coordinate of first corner of rectangle. y1 x2 integer x coordinate of second (opposite) corner of rectangle. integer y2 y coordinate of second (opposite) corner of rectangle. Return type no return value Example To draw a red filled rectangle with corners (20, 20) and (80, 80) on widget w: w.Rectangle(Widget.RED, true, 20, 20, 80, 80); RemoveAllWidgetItems() Description d g e t I t e m s from the W i d g e t Removes any W i d g e t . A d d W i d g e t I t e m and W i d g e t . R e m o v e W i d g e t I t e m . W i . Also see Arguments No arguments Return type No return value Example To remove all WidgetItems from widget w: w.RemoveAllWidgetItems(); W i d g e t I t e m ] ) RemoveWidgetItem(item [ Description v d g e t I t e m from the W i d g e t . Also see W i d g e t . A d d W i d g e t I t e m and W i d g e t . R e m o i e A l l W i d g e t I t e m s . W Removes a Arguments Type Description Name i d g e t I t e m W i d g e t I t e m to remove item W Return type No return value Example To remove WidgetItem wi from widget w: w.RemoveWidgetItem(wi); Page J.148

495 User manual Version 15.0, May 2018 T/HIS ShiftPressed() [static] Description Check to see if the Shift key is pressed Arguments No arguments Return type true/false Example To test if someone has the Shift key pressed: if (Widget.ShiftPressed()) { ... } Show() Description Shows the widget on the screen Arguments No arguments Return type No return value Example To show widget w: w.Show(); Static() Description g d w s have two different regions for W i d o e t s . A ’normal’ region which can be scrolled if required (if the window is W n i made smaller scrollbars will be shown which can be used to scroll the contents) and a ’static’ region at the top of the n d o w which is fixed and does not scroll. For an example of a static region in a W i n d o w see any of the keyword W i i g e t s are put into the d editing panels. The ’Dismiss’, ’Create’, ’Reset’ etc buttons are in the static region. By default W i n d o w . This method puts the W i d g e t to the static region of the W i n d o w . normal region of the W Arguments No arguments Return type No return value Example To put widget w in the static part of the window: w.Static(); , monospace (optional) [boolean] , fontSize (optional) [integer] ) [static] StringLength(text [string] Description Returns the length of a string in Widget units. This can be used to find what size a Widget must be to be able to display the string. Page J.149

496 T/HIS User manual Version 15.0, May 2018 Arguments Description Name Type string text Text to find the width of If true then width will be calculated using a monospace font. If false (default) then the monospace boolean normal proportional width font will be used (optional) integer Calculation can be based on a defined font size, at the moment support is added only for fontSize (optional) font sizes of 8, 10, 12, 14, 18 and 24. Return type integer Example To get the width of string ’Example’: var len = Widget.StringLength(’Example’); Tick(colour (optional) [constant] ) Description d g e Draws a tick symbol on the widget. Only possible for . L A B E L and W i d g e t . B U T T O N widgets. W i t Arguments Type Description Name constant Colour of tick symbol. See f o r e g r o u colour d for colours. If omitted, current foreground colour is n (optional) used. Return type no return value Example To draw a red tick symbol on widget w: w.Tick(Widget.RED); TotalItems() Description i d g e t I t e m objects used in this Widget (or 0 if none used). See also W i d g e t . I t e m A t ( ) and Returns the number of the W s d e t . W i d g e t I t e m g ( ) . i W Arguments No arguments Return type integer Example To return the total number of WidgetItems used for Widget w var total = w.TotalItems(); Page J.150

497 User manual Version 15.0, May 2018 T/HIS WidgetItems() Description e g e t I t e m objects used in this Widget (or null if none used). See also W i d Returns an array of the d t . I t e m A t ( ) and i W g d g e t . T o t a l I t e m s ( ) . W i Arguments No arguments Return type Array of WidgetItem objects Example To return WidgetItems used for Widget w var wi = w.WidgetItems(); Page J.151

498 T/HIS User manual Version 15.0, May 2018 WidgetItem class d The WidgetItem class allows you to create items for combobox and listbox t s . M o r e . . . i g W e WidgetItem properties Description Type Name d g e t . B L A C K , W i d g e t . Widget background colour. Can be: H I T E , W i d g e t . R E D , background constant W i W e t . G R E E N , W i W g e t . B L U E , W i d g e t . C Y A N , W i d g e t . M A G E N T A , W i d g e t . Y E L L O W , i d g d g e t . D A R K R E W , W i d g e t . D A R K G R E E N , W i d g e t . D A R K B L U E , W i d g e t . G R E Y , i d D d e t . D A R K G R E Y , W i d g e t . L I G H T G R E Y or W i d g e t . D E F A U L g W i T Widget foreground colour. Can be: i d g e t . B L A C K , W i d g e t W W H I T E , W i d g e t . R E D , constant foreground . d g e t . G R E E N , W i d g e t . B L U E , W i d g e t . C Y A N , W i d g e t . M A G E N T A , W i d g e t . Y E L L O W , W i R d t . D A R K R E D , W i d g e t . D A R K G R E E N , W i d g e t . D A R K B L U E , W i d g e t . G e E Y , W g i d e t . D A R K G R E Y , W i d g e t . L I G g T G R E Y or W i d g e t . D E F A U L T i W H WidgetItem’s hover text hover string integer index (read The index of this widgetitem in the parent widget (undefined if widgetitem is not assigned only) to a widget). boolean monospace true if the widgetitem uses a monospace font instead of a proportional width font (default). O M B O B O X or L Function to call when a widget item in a S T B O X widget is clicked. The onClick C function I Widgetitem object is accessible in the function using the ’this’ keyword. C O M B O B O X or L I S T B O X function onMouseOver Function to call when the mouse moves over a widget item in a widget. The Widgetitem object is accessible in the function using the ’this’ keyword. logical If the widget item can be selected (true) or not (false). selectable If the widget item is selected (true) or not (false). selected logical Widget text string text The widget that this item is defined for (null if not set) object widget (read only) Detailed Description n d o w for a graphical user The WidgetItem class allows you to create items for combobox and listbox Widgets in a W i interface. The following example shows how WidgetItems are used to create a Combobox Widget and how to assign callbacks to determine when the selection has been changed. var items = ["D3PLOT", "PRIMER", "SHELL", "REPORTER", "T/HIS"] // Create window var w = new Window("Combobox example", 0.8, 1.0, 0.5, 0.6); // A simple combobox with a few items var cl= new Widget(w, Widget.LABEL, 1, 30, 1, 7, "Programs:"); var cb= new Widget(w, Widget.COMBOBOX, 31, 61, 1, 7); // Add WidgetItems to Combobox for (i=0; i

499 User manual Version 15.0, May 2018 T/HIS cb.onClick = clicked; cb.onChange = changed; ci.onClick = clicked; ci.onChange = changed; e.onClick = confirm_exit // Show the window and start event loop w.Show(); //////////////////////////////////////////////////////////////////////////////// function clicked() { // If combobox is clicked then print the current selection if (this.selectedItem) Message("selection is currently ’"+this.selectedItem.text+"’"); } //////////////////////////////////////////////////////////////////////////////// function changed() { // If combobox selection is changed then print the new selection if (this.selectedItem) Message("selection is now ’"+this.selectedItem.text+"’"); } //////////////////////////////////////////////////////////////////////////////// function confirm_exit() { // Map confirm box var ret = Window.Question("Confirm exit", "Are you sure you want to quit?"); // If the user has answered yes then exit from the script. if (ret == Window.YES) Exit(); } n d o w and W i d g See the documentation below and the t classes for more details. W i e Constructor i d g e t ] , text [string] , selectable (optional) [boolean] ) [ new WidgetItem(widget W Description m g e t I t e d object. W Create a new i Arguments Type Description Name i d g e t W i d g e t that widget item will be created in. This can be null in which case the W i d g e t I t e m widget W i g e t . It can be assigned later by using d will be created but not assigned to a W d g e t . A d d W i d g e t I t e m ( ) . W i Text to show on widget item string text boolean If the widget item can be selected. If omitted the widget item will be selectable. selectable (optional) Return type d g e t I t e m object W i Page J.153

500 T/HIS User manual Version 15.0, May 2018 Window class r The Window class allows you to create windows for a graphical user interface. . . o e M . Class functions t m B o r d e r () • t B o o [constant] r [string] , error [string] , buttons (optional) (title ) r r E • o D i r e c t o r y (initial (optional) [string] ) • G e t F G l e (extension (optional) [string] , save (optional) [boolean] , initial (optional) [string] ) • e t i , extension (optional) F l e t a m e (title [string] , message [string] i [string] , initial (optional) [string] , save • G e n ) [boolean] (optional) t F i l e • (extension (optional) [string] ) G e s e I n t e g e r (title [string] , message [string] , initial (optional) [integer] ) • G t , message t m b e r (title [string] u [string] , initial (optional) [float] ) e • G N t S t r i n g (title [string] , message [string] , initial (optional) [string] ) • G e f o r m a t i o n (title [string] , info [string] , buttons (optional) [constant] ) • I n u s e r R e s o l t t i o n () M • a e s s a g e (title [string] , message [string] , buttons (optional) [constant] ) • M i M l e B o r d e r () • d d e s i o n (title [string] , question [string] , buttons (optional) [constant] ) Q • t u e h B o r d t r () g R • i p B o r d e r () • T o p d t e G U I () • U a r , buttons (optional) i n g (title [string] , warning [string] a [constant] ) • W n Member functions D e t e () e l • d e () i • H e c o m p u t e () • R e R a w () • d r o [boolean] (modal (optional) h ) • S w Window constants Name Description Window.CANCEL Show CANCEL button Window.NO Show NO button W i n d o w . E r r o r , W i n d o w . Q u e s t i o n , W i n d o w . W a r n i n g etc windows to be non modal Window.NONMODAL Allow Show OK button Window.OK Window.YES Show YES button Constants for Resizing/positioning Name Description Window.BOTTOM Bottom resizing/positioning of window Window.CENTRE Centre (horizontal) positioning of window Left resizing/positioning of window Window.LEFT Middle (vertical) positioning of window Window.MIDDLE Window is allowed to reduce in size when resizing Window.REDUCE Window.RIGHT Right resizing/positioning of window Window.TOP Top resizing/positioning of window Window properties Type Description Name If true (default) then the window then the window is active and widgets in the window can active boolean be used. If false then the window is inactive and the widgets cannot be used. Page J.154

501 User manual Version 15.0, May 2018 T/HIS W i d g e t . B L A C K , W i d g e t . W H I T E , W i d g e t . R E D , background constant Window background colour. Can be: W g . G R E E N , W i d g e t . B L U E , W i d g e t . C Y A N , t i d g e t . M A G E N T A , W i d g e t . Y E L L O W , d e W i g e t . D A R K R E D , W i d g e t . D A R K G R E E N W W i d g e t . D A R K B L U E , W i d g e t . G R E Y , i d , d e t . D A R K G R E Y , W i d g e t . L I G H T G R E Y or W g d g e t . D E F A U L T W i i bottom coordinate of window in range 0.0 (bottom) to 1.0 (top) bottom float height float height of window keepOnTop If true then the window will be kept "on top" of other windows. If false (default) then the boolean window stacking order can be changed. float left left coordinate of window in range 0.0 (left) to 1.0 (right) The maximum number of widgets that can be made in this window. This can be changed integer maxWidgets the window is created by using O p t i o n s . m a x _ w i d g e t s . Also see t o t a l W i d g e t s (read only) before Function to call function onAfterShow after a Window is shown. The Window object is accessible in the function using the ’this’ keyword. This may be useful to ensure that certain actions are done after the window is shown. It can also be used to show another window so this enables multiple windows to be shown. To unset the function set the property to null. a Window is shown. The Window object is accessible in the before onBeforeShow Function to call function function using the ’this’ keyword. This may be useful to ensure that buttons are shown/hidden etc before the window is shown. Note that it cannot be used to show another w e r A h o f for that. window. Use n t o S To unset the function set the property to null. onClose function Function to call when a Window is closed by pressing the X on the top right of the window. The Window object is accessible in the function using the ’this’ keyword. To unset the function set the property to null. constant resize Window resizing. By default when a Window is shown it is allowed to resize on all sides g e d s . The i W (left, right, top and bottom) to try to make enough room to show the t behaviour can be changed by using this property. It can be any combination (bitwise OR) n d o w . L E F T , W of n d o w . R I G H T , W i n d o w . T O P or W i n d o w . B O T T O M or 0. In addition W i i n o w . R E d U C E can also be added to allow the window to reduce in size when resizing. i W D i n d o w . S h o w is called this property is set to 0 (i.e. not to resize on any Note that when W side). float right right coordinate of window in range 0.0 (left) to 1.0 (right) showClose boolean If true (default) then a close (X) button will automatically be added on the top right of the window. If false then no close button will be shown. boolean true if window is currently shown, false if not shown (read only) title string Window title top coordinate of window in range 0.0 (bottom) to 1.0 (top) float top totalWidgets integer The total number of widgets that have been made in this window. This can be changed the window is created by using O p t i o n s . m a x _ w i d g e t s . Also see m a x W i d g e t s (read only) before width of window float width Detailed Description i d g The Window class allows you to make windows that you can place t s in to create a graphical user interface. The W e i n d o w . G e t I n t e g e r ( ) . The following very Widget class also gives a number of static methods for convenience. e.g. W simple example displays some text in a window with a button that unmaps the window when it is pressed and the user confirms that (s)he wants to exit. // Create window with title "Text" from 0.8-1.0 in x and 0.5-0.6 in y var w = new Window("Text", 0.8, 1.0, 0.5, 0.6); // Create label widget var l = new Widget(w, Widget.LABEL, 1, 40, 1, 7, "Press OK to exit"); // Create button widget var e = new Widget(w, Widget.BUTTON, 11, 30, 8, 14, "OK"); // Assign the onClick callback method to the function confirm_exit’ e.onClick = confirm_exit; // Show the widget and start event loop w.Show(); Page J.155

502 T/HIS User manual Version 15.0, May 2018 //////////////////////////////////////////////////////////////////////////////// function confirm_exit() { // Map confirm window var ret = Window.Question("Confirm exit", "Are you sure you want to quit?"); // If the user has answered Yes then exit. if (ret == Window.YES) w.Exit(); } class for more details. W t i d See the documentation below and the g e Constructor [float] , right [float] , bottom new Window(title , top [float] ) [string] , left [float] Description n d o w object. i W Create a new Arguments Description Type Name Window title to show in title bar title string left coordinate of window in range 0.0 (left) to 1.0 (right) float left float right right coordinate of window in range 0.0 (left) to 1.0 (right) bottom bottom coordinate of window in range 0.0 (bottom) to 1.0 (top) float top float top coordinate of window in range 0.0 (bottom) to 1.0 (top) Return type d o w object i n W Example To create a Window ’Example’ in the top right half of the screen: var w = new Window(’Example’, 0.5, 1.0, 0.5, 1.0); Details of functions BottomBorder() [static] Description Returns the vertical position of the bottom border (in range 0-1). This can be used to help position windows on the screen. Arguments No arguments Return type float in range 0-1 Example To obtain the position of the bottom border: var b = Window.BottomBorder(); Page J.156

503 User manual Version 15.0, May 2018 T/HIS Delete() Description This function should not Deletes the window from PRIMER and returns any memory/resources used for the window. normally need to be called . However, in exceptional circumstances if a script recreates windows many times PRIMER may run out of USER objects on Microsoft Windows because of the way PRIMER creates and shows windows. To Do not use the avoid this problem this method can be used to force PRIMER to return the resources for a window. . Window object after calling this method Arguments No arguments Return type No return value Example To delete window w: w.Delete(); Error(title [constant] ) [static] [string] , error [string] , buttons (optional) Description Show an error message in a window. Arguments Name Type Description title string Title for window. string Error message to show in window. The maximum number of lines that can be shown is error t i o n s . m a x _ w O n d o w _ l i n e s option. controlled by the p i constant The buttons to use. Can be bitwise OR of W i n d o w . O K , W buttons n d o w . C A N C E L , W i n d o w . Y E S or i i W o w . N O . If this is omitted an OK button will be used. By default the window will be (optional) n d M n o i . N O N d O D A L is also given the window will be non-modal instead. W modal. If w Return type Button pressed Example Error with Yes and No buttons: To show error Critical error!\nAbort? in window with title var answer = Window.Error("Error", "Critical error!\nAbort?", Window.YES | Window.NO); if (answer == Window.YES) Exit(); [string] ) [static] GetDirectory(initial (optional) Description Map the directory selector box native to your machine, allowing you to choose a directory. On Unix this will be a Motif selector. Windows will use the standard windows directory selector. Arguments Name Type Description initial (optional) string Initial directory to start from. Page J.157

504 T/HIS User manual Version 15.0, May 2018 Return type directory (string), (or null if cancel pressed). Example To select a directory: var dir = Window.GetDirectory(); , initial (optional) [string] [string] [boolean] GetFile(extension (optional) , save (optional) ) [static] Description n d o w . G e t F i l e s ( ) and W i n d o Map a file selector box allowing you to choose a file. See also . G e t F i l e n a m e ( ) . W i w Arguments Type Name Description Extension to filter by. extension string (optional) If true the file selector is to be used for saving a file. If false (default) the file selector is for save boolean (optional) opening a file. Due to native operating system file selector differences, on linux new filenames can only be given when saving a file. On windows it is possible to give new filenames when opening or saving a file. string Initial directory to start from. initial (optional) Return type filename (string), (or null if cancel pressed). Example To select a file using extension ’.key’: var file = Window.GetFile(".key"); , save , extension (optional) [string] , initial (optional) GetFilename(title [string] , message [string] [string] ) [static] [boolean] (optional) Description Map a window allowing you to input a filename (or select it using a file selector). OK and Cancel buttons are shown. i n d o w . G e t F i l e ( ) . See also W Arguments Type Name Description title string Title for window. message Message to show in window. string extension Extension to filter by. string (optional) string Initial value. initial (optional) boolean If true the file selector is to be used for saving a file. If false (default) the file selector is for save opening a file. Due to native operating system file selector differences, on linux new filenames (optional) can only be given when saving a file. On windows it is possible to give new filenames when opening or saving a file. Page J.158

505 User manual Version 15.0, May 2018 T/HIS Return type filename (string), (or null if cancel pressed). Example and return the filename input: To create an file input window with title and message Choose file Choose the file to open var filename = Window.GetFilename("Choose file", "Choose the file to open"); [string] GetFiles(extension (optional) ) [static] Description n d o w . G e t F i l e ( ) Map a file selector box allowing you to choose multiple files. See also W i n d o w . G e t F i l e n a m e ( ) . W i and Arguments Description Name Type Extension to filter by. string extension (optional) Return type Array of filenames (strings), or null if cancel pressed. Example To select multiple files using extension ’.key’: var files = Window.GetFiles(".key"); [string] , initial (optional) GetInteger(title ) [static] , message [string] [integer] Description Map a window allowing you to input an integer. OK and Cancel buttons are shown. Arguments Type Description Name title string Title for window. Message to show in window. message string Initial value. integer initial (optional) Return type value input (integer), or null if cancel pressed. Example To create an input window with title Input and message and return the value input: Input integer var value = Window.GetInteger("Input", "Input integer"); , message [string] , initial (optional) [float] ) [static] GetNumber(title [string] Description Map a window allowing you to input a number. OK and Cancel buttons are shown. Page J.159

506 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type string title Title for window. Message to show in window. string message float initial (optional) Initial value. Return type value input (float), or null if cancel pressed. Example To create an input window with title and return the value input: Input and message Input number var value = Window.GetNumber("Input", "Input number"); [string] , initial (optional) [string] ) [static] , message [string] GetString(title Description Map a window allowing you to input a string. OK and Cancel buttons are shown. Arguments Description Name Type Title for window. string title string message Message to show in window. initial (optional) string Initial value. Return type value input (string), or null if cancel pressed. Example and message Input string and return the value input: To create an input window with title Input var value = Window.GetString("Input", "Input string"); Hide() Description Hides (unmaps) the window. Arguments No arguments Return type No return value Example To hide window w: w.Hide(); Page J.160

507 User manual Version 15.0, May 2018 T/HIS [string] , buttons (optional) [constant] ) [static] Information(title [string] , info Description Show information in a window. Arguments Name Type Description Title for window. string title string info Information to show in window. The maximum number of lines that can be shown is controlled i o n s . m a x _ w by the n d o w _ l i n e s option. O p t i The buttons to use. Can be bitwise OR of W i n d o w . O K , W i n d buttons w . C A o C E L , W i n d o w . Y E S or constant N i d o w . N O . If this is omitted an OK button will be used. By default the window will be (optional) W n n M o w . N O N i O D A L is also given the window will be non-modal instead. d modal. If W Return type Button pressed Example Example with OK and Cancel buttons: To show information Information in window with title var answer = Window.Information("Example", "Information", Window.OK | Window.CANCEL); if (answer == Window.CANCEL) Message("You pressed the Cancel button"); MasterResolution() [static] Description Returns the resolution of the master programme window in pixels Arguments No arguments Return type Array containing x and y resolution in pixels Example To get the resolution of the main window: var res = Window.MasterResolution(); [string] ) [static] , message , buttons (optional) [constant] Message(title [string] Description Show a message in a window. Arguments Type Description Name Title for window. title string string Message to show in window. The maximum number of lines that can be shown is controlled by message the O o n s . m a x _ w i n d o w _ l i n e s option. t p i constant The buttons to use. Can be bitwise OR of W i n d o buttons . O K , W i n d o w . C A N C E L , W i n d o w . Y E S or w N i o w . d O . If this is omitted an OK button will be used By default the window will be n W (optional) i n d o w . N O N M O D A L is also given the window will be non-modal instead. modal. If W Page J.161

508 T/HIS User manual Version 15.0, May 2018 Return type Button pressed Example Press YES or NO To show message in window with title with YES and NO buttons: Example var answer = Window.Message("Example", "Press YES or NO", Window.YES | Window.NO); if (answer == Window.NO) Message("You pressed No"); MiddleBorder() [static] Description Returns the vertical position of the middle border (in range 0-1). The middle border is the border between the tools/keywords window and the docked windows. This can be used to help position windows on the screen. Arguments No arguments Return type float in range 0-1 Example To obtain the position of the middle border: var b = Window.MiddleBorder(); , buttons (optional) [constant] ) [static] [string] , question Question(title [string] Description Show a question in a window. Arguments Name Type Description string title Title for window. Question to show in window. The maximum number of lines that can be shown is controlled question string d t o n s . m a x _ w by the n i o w _ l i n e s option. p O i constant The buttons to use. Can be bitwise OR of W i n d o w . O buttons , W i n d o w . C A N C E L , W i n d o w . Y E S or K N i o w . d O . If this is omitted Yes and No button will be used. By default the window will be n (optional) W i n d o w . N O N M O D A L is also given the window will be non-modal instead. modal. If W Return type Button pressed Example Question : Do you want to continue? To show question in window with title var answer = Window.Question("Question", "Do you want to continue?"); if (answer == Window.NO) Message("You pressed No"); Recompute() Description t a t i c widgets and ’normal’ widgets in a window and Recomputes the positions of widgets in the window. If you have s you show and/or hide widgets the window needs to be recomputed to refresh the graphics, scroll bars etc. Calling this method will recompute and redraw the window. Page J.162

509 User manual Version 15.0, May 2018 T/HIS Arguments No arguments Return type No return value Example To recompute window w: w.Recompute(); Redraw() Description h o w , h i d e or draw graphics on w i d g e t s the window needs to be redrawn to Redraws the window. Sometimes if you s refresh the graphics. Calling this method will redraw the window refreshing the graphics. Arguments No arguments Return type No return value Example To redraw window w: w.Redraw(); RightBorder() [static] Description Returns the horizontal position of the right border (in range 0-1). This can be used to help position windows on the screen. Arguments No arguments Return type float in range 0-1 Example To obtain the position of the right border: var b = Window.RightBorder(); Show(modal (optional) [boolean] ) Description Shows (maps) the window and waits for user input. Page J.163

510 T/HIS User manual Version 15.0, May 2018 Arguments Name Description Type modal If this window is modal (true) then the user is blocked from doing anything else in PRIMER boolean until this window is dismissed). If non-modal (false) then the user can still use other functions (optional) in PRIMER. If omitted the window will be modal. Note that making a window modal will stop interaction in all other windows and may prevent operations such as picking from working in any macros that are run from scripts. Return type No return value Example To show window w: w.Show(); To show window w allowing the user to use other functions in PRIMER: w.Show(false); TopBorder() [static] Description Returns the vertical position of the top border (in range 0-1). This can be used to help position windows on the screen. This is no longer used in PRIMER and will always be 1 but is left for backwards compatibility. Arguments No arguments Return type float in range 0-1 Example To obtain the position of the top border: var b = Window.TopBorder(); UpdateGUI() [static] Description Force GUI to be updated. This function is not normally needed but if you are doing a computationally expensive operation and want to update the GUI it may be necessary as the GUI update requests are cached until there is spare time to update them. Calling this function forces any outstanding requests to be flushed. Arguments No arguments Return type No return value Example To force update of GUI: Window.UpdateGUI(); Page J.164

511 User manual Version 15.0, May 2018 T/HIS [string] , buttons (optional) [constant] ) [static] [string] Warning(title , warning Description Show a warning message in a window. Arguments Type Name Description Title for window. string title warning Warning message to show in window. The maximum number of lines that can be shown is string t i o n s . m controlled by the x _ w i n d o w _ l i n e s option. O p a constant The buttons to use. Can be bitwise OR of W i n d o w . O K , W i n buttons o w . C A N C E L , W i n d o w . Y E S or d N i o w . d O . If this is omitted an OK button will be used. By default the window will be n (optional) W i n d o w . N O N M O D A L is also given the window will be non-modal instead. modal. If W Return type Button pressed Example Title is blank\nSet to ID? in window with title Warning with Yes and No buttons: To show warning var answer = Window.Warning("Warning", "Title is blank\nSet to ID?", Window.YES | Window.NO); if (answer == Window.NO) Message("You pressed No"); Page J.165

512 T/HIS User manual Version 15.0, May 2018 XMLParser class r o . . The XMLParser class enables reading data from XML files. e M . Member functions r (filename [string] ) • s P a e XMLParser properties Name Type Description function Function to call when character data is found. The function will be called with 1 characterDataHandler argument which is a string containing the character data Function to call when a comment is found. The function will be called with 1 function commentHandler argument which is a string containing the text inside the comment function Function to call at the end of a CDATA section. The function does not have any endCDATAHandler arguments. endElementHandler function Function to call when an element end tag is found. The function will be called with 1 argument which is a string containing the name of the element startCDATAHandler function Function to call at the start of a CDATA section. The function does not have any arguments. startElementHandler Function to call when an element start tag is found. The function will be called with function 2 arguments. Argument 1 is a string containing the name of the element. Argument 2 is an object containing the element attributes Detailed Description The XMLParser class provides a stream-oriented parser to enable you to read XML files. You register callback (or handler) functions with the parser and then parse the document. As the parser recognizes parts of the document, it will call the appropriate handler for that part (if you’ve registered one.) The document is fed to the parser in pieces. This allows you to parse really huge documents that won’t fit into memory. L P a There are currently 6 handlers which can be set: s e r . s t a r t E l e m e n t H a n d l e r , X M L P a r s e r . e n d E l e m e n t H a n d l e r , X M r L P a r s e r . c h a r a c t e r D a t a H a n d l e r , X M L P a r s e r . c o m m e n t H a n d l e r , X M L P a r s e r . s t a r t C D A T A H a n d l e r and X M H L r s e r . e n d C D A T A a a n d l e r . X P M The following simple example shows how the parser could be used. // Create a new parser object var p = new XMLParser(); // assign handlers p.startElementHandler = startElem; p.endElementHandler = endElem; p.characterDataHandler = text; p.commentHandler = comment; // parse the file p.Parse("/data/test.xml"); //////////////////////////////////////////////////////////////////////////////// function startElem(name, attr) { // handler to be called when a start element is found // Print element name Println("START: " + name); // Print attributes for (n in attr) { Println(" attr: " + n + "=" + attr[n]); } } function endElem(name) { // handler to be called when an end element is found // Print element name Println("END: " + name); } function text(str) { // handler to be called when text is found Page J.166

513 User manual Version 15.0, May 2018 T/HIS // Print text Println("TEXT: ’" + str + "’"); } function comment(str) { // handler to be called when a comment is found // Print comment Println("COMMENT: ’" + str + "’"); } See the documentation below for more details. Constructor new XMLParser() Description L Create a new a r s e r object for reading XML files. X M P Arguments No arguments Return type X P a r s e r object M L Example To create a new XMLParser object to read XML file "/data/test/file.xml" var p = new XMLParser("/data/test/file.xml"); Details of functions ) Parse(filename [string] Description starts parsing an XML file Arguments Name Type Description XML file to parse filename string Return type No return value Example To parse XML file "/data/test.xml" var p = new XMLParser(); p.parse("/data/test.xml"); Page J.167

514 T/HIS User manual Version 15.0, May 2018 Page J.168

515 User manual Version 15.0, May 2018 T/HIS APPENDIX K - Typed Commands K.1 Global Menu CL - Plot - Clear Screen PL ZM - Zoom AU - Auto Scale Plot CE PT - Point on Screen - Centre PF - Write Postscript file (use default) PC - Write Postscript file (Colour) - Write Postscript file (Blank/White) PB - Unblank Curve - Blank Curve BL UB ER RM - Remove a Curve - Erase all curves - Condense Curves CO - Global Status GS Y1 Y2 - Second Y axis - 1st Y axis DOU - Double Y axis (ON/ OFF) SF - Session file (write) CF - Command file (read) - Close session file CS EX - Exit - Top level menu ! - Backspace / - Abort operation Q ; - End of command string K.2 List Commands - List all files "*.cur" in current directory LS - List all files in current directory LC LB - List all files "*.bdf" in current directory LK - List all files "*.key" in current directory LI - List all files ASCII files in current directory M - l o b a l G e n u M G Page K.1

516 T/HIS User manual Version 15.0, May 2018 - Model options RE - Read Model Files MO - Read Data from - Globa data GL DA model PA - Part data NO - Node data SO - Solid data BE - Beam data SH - Shell data TS - Thick Shell data - Part data WA - Spring data SPR SEA - Seatbelt data RET - Retractor data - Slipring data SL CO - Contact data - Reaction data REA AI - Airbag data - Joint data JO - Section data SEC SU - Subsystem data P_G - Part Group data - Geometrical Contact G_C data - Rigid Body data RI SPO - Spotweld data SPC - SPC data FS - Fluid structural interaction data - Boundary condition data BO SPH - SPH data - Select Models SE - Delete Models DE - List Models LI - Set Surface SU CU - Read T/HIS curve file - Read data RE - Read T/HIS curve file (ignore any style definitions) CU_NO BD - Read Bulk data file - Read from LS-DYNA KEYWORD input file KW KY - Input curve from keyboard CSV - Read a CSV file (X,Y,X,Y,X,Y) CSV2 - Read a CSV file (X,Y,|Y,Y,Y,Y) ISO - Read ISO curve data (multiple channels) - Read ISO curve data (single channel) ISO2 - Write options WR - Write curve file WR - Write all curves to a T/HIS curve file WA KEY - Write curves to a LS-DYNA Keyword file CSV - Write curves to a CSV file (X,Y,X,Y,X,Y) CSV2 - Write curves to a CSV file (X,Y,|Y,Y,Y,Y) - List curve data on screen LI RE - Report curve data to file SU - Sumary of curve ST - Status Page K.2

517 User manual Version 15.0, May 2018 T/HIS - Autoscaling on AU - Auto Scaling DE - Defaults ON - Autoscaling off OFF - Define new x limits (minimum,maximum) DX XMN - Define new minimum x limit - Define new maximum x limit XMX DY - Define new y limit (min,max) YMN - Define new minimum y limit YMX - Define new maximun y limit - Define new second y axis limits (min,max) 2DY YMN2 - Define new minimum second y limit YMX2 - Define new maximum second y limit ST - Status - Title TI AU - Use automatic axes labels (both) LA - Axes labels (user defined) - Use automatic x axis labels AX AY - Use automatic y axis labels 2AY - Use automatic 2nd y axis labels - Define new x axis plot label DX - Define new y axis plot label DY - Define new 2nd y axis plot label 2DY - Status ST AW - Axis line width AX - Axis types AC - Axis Colour ON - Turn grid on GR - Grid lines OFF - Turn grid off AX - Automatic x-axis grid intervals - Automatic y-axis grid intervals AY MX - Manual x-axis grid intervals MY - Manual y-axis grid intervals IX - Define x-axis grid intervals - Define y-axis grid intervals IY OX - Define x-axis grid offset - Define y-axis grid offset OY - Define grid line thickness TH - Grid width GW UL - User Line LL - Line labels ON - Turn model prefix on MP - Model Prefix - Turn model prefix off OFF - Add prefix if more than one model AUTO - Prefix Format ID - Model ID PR DIR - Model directory - Root of THF filename THF USER - User defined PF - Plot format WX - Window size (x) "pixels" - Window size (y) "pixels" WY RV - Reverse Foregorund / Background FO - Foreground Colour - Background Colour BA - Curve through points ON/OFF CU - Symbols ON/OFF SY BD - Border ON/OFF - Border width BW BC - Border Colour LW - Default line width SMN - Show minimum value SMX - Show maximum value LXMN - Label x value at minimum LYMN - Label y value at minimum - Label x value at maximum LXMX Page K.3

518 T/HIS User manual Version 15.0, May 2018 LYMX - Label y value at maximum - Reset to defaults RE - Status ST - Font TI FO - Title XL - X Axis Label XU - X Axis Units - Y Axis Label YL - Y Axis Units YU - 2nd Y Axis Label Y2L Y2U - 2nd Y Axis Units LE - Curve Legend - All labels ALL F - move Forward next 16 lines ED - Edit option B - move Back 16 lines - move to Top of curve T E - move to End of curve - move to line n n(umber) - Change line n C n - Insert before line n I n - Append after line n A n - Delete from line n1 to n2 D n1 n2 L - change Line label - Reset edited curve back to original R - write curve W or S - Plot Edited curve PE - Plot Edited And original curve PA PL - PLot stored T/HIS curves Q - Quit the editor OP - Operate ADX/Y - Add - Multiply MUX/Y SUX/Y - Subtract - Divide DIX/Y - Concatenate 2 curves CAT - Map one curve onto another MAP - Combine curves COM ERR - Error functions INT - Integrate DIF - Differentiate - Smooth SMO - Least squares fit LSQ - Square root SQR NOR - Normalise REC - Reciprocal ABS - Absolute values TRA - Translate - Reverse REV CLP - Clip ZERO - Translate the curve to (0,0) - Reverse the order of the curve points ORDER VEC - Vector magnitude - Vector Magnitude (2D) VEC2 SUM - Sum of ’n’ curves ENV - Envelope of ’n’ curves MIN - Minimum of ’n’ curves MAX - Maximum of ’n’ curves AVE - Average of ’n’ curves R-AV - Rolling Average of ’n’ curves - Convert stress/strain curve STR Page K.4

519 User manual Version 15.0, May 2018 T/HIS - Automotive options C60 - Class 60 filter AM - Class 180 filter C180 - Class 600 filter C600 C1000 - Class 100 filter - Butterworth filter BUT - FIR filter FIR HIC - HIC value - HIC(d) value HICD - 3ms Clip value CLI EXC - Exceedence Plot VC - Viscous Criteria (ECER95) VC2 - Viscous Criteria (IIHS) - Acceleration Severity Index (BS EN 1317-1:1998) ASI - Acceleration Severity Index (BS EN 1317-1:2010) ASI2 THIV - Theoretical Head Impact Velocity NIJ - Neck Injury TTI - Thoracic Trauma Index - Normalise NOR - Regularise REG - Vector Magnitude VEC - Vector Magnitude (2D) VEC2 - Airbag Control Unit ACU - Squre Root - Maths operations SQRT MA LOG - Natural Log EXP - e to power of LOG10 - Log to base 10 - To raise to power ** - Sine SIN - Cosine COS TAN - Tangent ASIN - Arc sine ACOS - Arc cosine ATAN - Arc tangent SE - Displacement to velocity spectra DV - Seismic options - Displacement to acceleration spectra DA - Velocity to displacement spectra VD - Velocity to acceleration spectra VA AD - Acceleration to displacement spectra AV - Acceleration to velocity spectra DS - Produce a design spectrum from a response spectrum RS - Produce response spectra from input accelerations - Fast fourier transformation FFT - Utility functions - Colour laser output CL UT GL - Greyscale laser output LW - Line width - Solid axes (x=0 & y=0 axes solid) SA RE ST - Line styles - Read in style file WR - Write out style file - Reset styles to default settings DE SET - Set a T/HIS line style FIX - Turn fix line styles on/off - Help HE - Curve editing options - Set a new curve label LA CU TI - Set a new curve title - Set a new curve x-axis label XL YL - Set a new curve y-axis label TA - Set a new curve tag READ GRO - Group options - Read a T/HIS group file LIST - List all T/HIS groups DELETE - Delete all T/HIS groups - Create a new T/HIS group CREATE Page K.5

520 T/HIS User manual Version 15.0, May 2018 - Image output options JPEG - Capture a JPEG image IM - Capture an uncompressed Bitmap image BMP_U - Capture a compressed Bitmap image BMP_C PPM Capture a portable pixmap file REG - Set time interval for automatic curve resularising PREF - Define T/HIS user preferences CONV - Set/unset automatic conversion from ms to s when filtering FILE - Turn on/off output of injury criteria values and error calculations to ASCII files SHOW - Turn on/off display of HIC/ 3ms clip values ZERO - Turn on/off automatic creation of (0,0) point when reading data from ASCII files Page K.6

521 User manual Version 15.0, May 2018 T/HIS Installation organisation The version 15 installation can be customised to try and avoid a number of issues that often occur in large organisations with many users. • Large organisations generally imply large networks, and it is often the case that the performance of these networks can be intermittent or poor, therefore it is common practice to perform an installation of the software on the local disk of each machine, rather then having a single installation on a remote disk. This avoids the pauses and glitches that can occur when running executable files over a network, but it also means that all the configuration files in, or depending upon, the top level "Admin" directory have to be copied to all machines and, more to the point, any changes or additions to such files also have to be copied to all machines. In larger organisations the "one person per computer" philosophy may not apply, with the consequence that users • will tend to have a floating home area on a network drive and may not use the same machine every day. This is not usually a problem on Linux where the "home" directory is tied to the login name not the machine. However on Windows platforms it means that %USERPROFILE%, which is typically on the local C drive of a machine, is not a good place to consider as "home" since it will be tied to a given computer, therefore a user who saves a file in his home directory on machine A may not be able to access it from machine B. • In a similar vein placing large temporary files on the /tmp partition (Linux) or the C: drive (Windows) may result in local disks becoming too full, or quotas exceeded. This section gives only a brief summary of the installation organisation, and you should refer to the separate Installation Guide if you want to find out more about the details of installation, licensing, and other related issues. Version 15.0 Installation structure In version 15.0 the option is provided to separate a top-level ’administration’ directory from the ’installation’ one where the executables are located. For large installations on many machines this allows central configuration and administration files to exist in one place only, but executables to be installed locally on users’ machines to give better performance. Version 15.0 also allows the following items to be configured • The location for user manuals and other documentation. The definition of a user’s home directory. • • The definition of the temporary directory for scratch files. In addition parsing of the ’oa_pref’ (preferences) file will now handle environment variables, so that a generic preference can be configured to give a user-specific result, and preferences may be ’locked’ so that those set at the administration level cannot be changed by users. These changes are entirely optional, and users performing a simple installation on a single machine do not need to make any changes to their existing installation practice. Status Directory Content and purpose oa_pref file option Directory Top level configuration files. OA_ADMIN_xx Optional =15 for release 15.0, thus OA_ADMIN_15 ) xx ( Admin level oa_pref file Other configuration files Timeout configuration file Page L.1

522 User manual Version 15.0, May 2018 T/HIS OA_ADMIN Optional , provided for backwards Same as OA_ADMIN_15 compatibility with earlier releases. OA_ADMIN It is recommended that plain , without the _xx version suffix, is not used since otherwise there is no easy way of distinguishing between parallel installations of different releases of the Oasys Ltd software in an installation. is not defined then this If OA_ADMIN_15 non-release specific version is checked. =15 for release 15.0, thus xx OA_INSTALL_xx Optional oasys*install_dir: ( OA_ADMIN_15 > < pathname All executables Installation level oa_pref file OA_INSTALL_15 . OA_INSTALL Optional Same as oasys*install_dir: pathname > < If no " OA_ADMIN_xx " directory is used and all software is simply placed in this "install" directory, which would be typical of a single-user installation, then it is recommended that the version suffix is _xx used in order to keep parallel installations of different releases of the Oasts Ltd software separate on the machine. OA_INSTALL_15 If is not defined then this non-release specific version is checked oasys*manuals_dir: OA_MANUALS Optional Specific directory for user manuals. If not defined then will search in: < pathname > OA_ADMIN_xx/manuals (xx = major version number) OA_INSTALL/manuals OA_HOME Optional Specific "home" directory for user when using Oasys oasys*home_dir: pathname > < Ltd software. If not defined will use: (Linux) $HOME (Windows) %USERPROFILE% Optional oasys*temp_dir: OA_TEMP Specific "temporary" directory for user when using > Oasys Ltd software. If not defined will use: < pathname (Linux, typically /tmp) P_tmpdir (Windows, typically C:\temp) %TEMP% It will be clear from the table above that no Environment variables have to be set, and that all defaults will revert to pre-9.4 behaviour. In other words users wishing to keep the status quo will find behaviour and layout unchanged if they do nothing. OA_INSTALL_XX (renamed from OA_INSTALL Previously the software used the OASYS ) environment variable to locate the directory the software was installed in. On Windows this is no longer required as the software can work out its own installation directory. As this • environment variable is no longer required it is recommended that it is removed from machines it is currently set on as in some cases where more than one version has been installed in different directories it can cause problems. • On LINUX systems the "oasys_15" script that starts the SHELL automatically sets this Environment Variable and passes it to any application started from the SHELL. If you run applications directly from the command line so that the software can locate manuals and other and bypass the SHELL then you should set OA_INSTALL_XX required files. OA_ADMIN_XX Users wishing to separate configuration and installation directories will be able to do so by making use of the new top level OA_ADMIN_xx directory. Page L.2

523 User manual Version 15.0, May 2018 T/HIS Installation Examples The following diagrams illustrate how the installation might be organised in various different scenarios.. a) Single user installation on one machine There is no need to worry about separating administration and installation directories, and the default installation of all files in and below the single installation directory will suffice. OA_INSTALL_xx is used in order to keep It is suggested that the _xx version suffix of parallel installations of different releases of the Oassys Ltd software separate on the machine. b) A few machines on a small network, each user has his own machine The top level administration directory can be installed on a network server, possibly also locating the manuals centrally. Each user’s machine has its own ’installation’ directory to give good performance, but there is no need to manage home or temporary directories centrally since each user ’owns’ his machine. If network performance is good an alternative would be to install executables on the central server, meaning that local OA_INSTALL directories are not required. c) Large corporate network There is no need to worry about separating administration and installation directories, and the default installation of all files in and below the single installation directory will suffice. Page L.3

524 User manual Version 15.0, May 2018 T/HIS Dynamic configuration using the top level oa_pref file. OA_ADMIN_xx A further improvement is that all environment variables below may either be set explicitly, or dynamically using the options in the oa_pref file at the top level. This permits parallel installations of OA_ADMIN_xx different versions of the software to co-exist, with only the top level administration directory names being distinct. For example: Release 15.1 Release 15.0 Top level directory OA_ADMIN_15 Top level directory OA_ADMIN_151 contains: contains: OA_ADMIN_15 oa_pref file in OA_ADMIN_151 oa_pref file in < pathname for 15.0 oasys*install_dir: < 15.1 pathname for oasys*install_dir: installation > > installation 15.0 < oasys*manuals_dir: 15.1 pathname for < oasys*manuals_dir: pathname for > manuals > manuals > pathname for home directory < oasys*home_dir: } would almost certainly be unchanged between major > } versions, although they could be different if desired oasys*temp_dir: pathname for temporary files < Pathnames in the oa_pref file may contain environment variables which will be resolved before being applied. The hierarchy of oa_pref file reading It will be clear from the above that in a large installation the "oa_pref" files have a significant role. Each piece of software reads them in the following order: OA_ADMIN_xx Top level configuration Installation level OA_INSTALL_xx OA_HOME User’s personal "home" file Current working directory File specific to the current directory (rarely used) The rules for reading these files are: • If a given directory does not exist, or no file is found in that directory, then no action is taken. This is not an error. A more recently read definition supersedes one read earlier, therefore "local" definitions can supersede "global" • ones (unless it was locked ). • If two of more of the directories in the table above are the same then that file is only read once from the first instance. Locking Preference Options From version 9.4 onwards preference options can be locked. If a preference option is locked in a file then that preference option will be ignored in any of the subsequent preference files that are read. Therefore by locking a preference in a top-level file in the hierarchy above, eg in , and then protecting OA_ADMIN_xx that file to be read-only, an administrator can set preferences that cannot be altered by users since any definitions of that preference in their private oa_pref files will be ignored. Preferences are locked by using a hash (#) rather than an asterisk (*) between the code name and the preference string. For example: primer * maximise: true Normal case using " * ", means an unlocked preference Page L.4

525 User manual Version 15.0, May 2018 T/HIS primer # maximise: true Locked case using " # " These changes may be made either by editing the file manually, or by using the preferences editor. Page L.5

526 T/HIS User manual Version 15.0, May 2018 Page L.6

527 User manual Version 15.0, May 2018 T/HIS JaDe: The JavaScript debugger JaDe is included in D3PLOT, PRIMER and T/HIS to help debug and develop JavaScripts. It is started by selecting a button in the JavaScript menu in any of the programs. The initial screen is shown below. script and pressing the Debug It is fairly basic but hopefully has enough functionality for people to be able to find and fix problems in scripts. Viewing the script files and functions The main part of the window shows the script file. If your script is broken up into separate file (by using Use) then you can get a list of the different files and view them by using the Source popup. To go to a particular line in the file use textbox. the goto line menu on the top left. If you want to look at a particular A list of the functions in the script is shown in the Functions function then click on the function name and the main text window will jump to the correct file and line. Adding/removing breakpoints A breakpoint is a line in the script where execution will pause in JaDe. To add a breakpoint either left click on the line from the popup. A red circle is you want the breakpoint on or right click on the line and select Create breakpoint then drawn on the line to show that there is an active breakpoint. Page M.1

528 T/HIS User manual Version 15.0, May 2018 Additionally the breakpoint will also be added to the list in the breakpoint window (bottom left of JaDe). You can click on this at any time and the main text window will jump to the correct file and line. Active breakpoints are shown with a red circle. Breakpoints can be activated/deactivated by clicking on the line again. Unactive breakpoints are shown as a grey circle instead of a red one. They are also shown in grey text in the breakpoint window . Delete breakpoint . The breakpoint will be deleted. To delete a breakpoint right click on the line and select Conditional breakpoints Sometimes it is useful to only stop at a breakpoint if a certain condition is met. For example in the above example we may only want to stop at line 114 if is 10. You can do this by right clicking on the the breakpoint and selecting mines Add condition . A window is mapped allowing you type in the condition you want to try to meet. The condition should be a JavaScript expression which evaluates to true if you want the breakpoint to stop execution, or false if you want the breakpoint to be skipped. In this example the condition is n == 10 . If a breakpoint has a condition associated with it a C is drawn on the circle and in the breakpoint window. The condition Remove can be edited again or removed by right clicking on the breakpoint and selecting either or Edit condition from the popup. condition Running the script Running the script is controlled by the buttons at the top of the debugger window. By default the script will be run in the debugger in ’strict mode’. This tries to pick up things which you might not have intended by running the script in a strict mode checkbox. stricter environment doing more checking. You can toggle this on/off by using the Starting and stopping To start the script press the Run button. Execution of the script will start. If you have not defined any breakpoints then x c e p t i o n s ). If there is a breakpoint then the the script will run until it finishes (unless there are some script errors or e debugger will stop execution of the script when it reaches it. If the script is running and you want to pause execution of Interrupt . the script at any time you can press Page M.2

529 User manual Version 15.0, May 2018 T/HIS The line that the debugger has paused the script on is shown by a green triangle. In the above example it is paused at t l s t a c k . See the c a l l s t a c k s c c l i o n b e l o w for more details. a line 114. The middle panel on the left shows the e Stepping and continuing Continue , Next , Step Once the script is paused in the debugger you can step through the source code by using the buttons. and Finish will resume execution of the script again. Continue a function call. Next continues to the next line in the current function. i.e. it will step over into continues execution to the next source line (which may be in a different function. i.e. it will step Step a function call). Finish will finish executing the current function and stop at the next line in the calling function (the function above this a l l s t a c k ). in the c Alternatively, if you want to continue until a particular line you can right click on the line you want to continue until Continue to here from the popup. and select Printing the value of a variable If you want to see the value of a variable you can type the name of the variable you want to see in the textbox at the top of the debugger and press Print . JaDe will evaluate the variable and output the result in the statusbar at the bottom of the debugger. Using Quickwatch Print If you want to look at the values for lots of variables it is annoying to have to type the variable name in and press for each one. A better way is to use Quickwatch at the top left of JaDe Page M.3

530 T/HIS User manual Version 15.0, May 2018 Type the name of the variable that you want to watch in the Click to add textbox. A line will be added for the variable is being displayed and its current value is showing its name and value. e.g. in the following image the variable mines 10 . If the value is very long hover over the value to get the whole string. Remove You can add any number of variables to watch. To remove one right click on the variable and select from the popup. quickwatch mines in the following example. If a variable exists and has been assigned to then the value is displayed. e.g. value. e.g. pos in the If the variable exists but it has not yet had a value assigned its value is the undefined following example. ! invalid ! . e.g. fred in the following example. If the variable does not exist the value is shown as The call stack The call stack shows which functions have been called in the script to get to the current point. It is the middle left window in JaDe. Page M.4

531 User manual Version 15.0, May 2018 T/HIS The top line shows the function that the script is currently paused at. The other lines show the calling functions in order. The above example can be read as: 1. The script starts 2. start_game is called. On line 65 in script file minesweeper.js in the ’main’ program the function the function allocate_mines 3. On line 160 in script file minesweeper.js in function start_game is called allocate_mines the script is paused. On line 114 in script file minesweeper.js in function 4. This information is sometimes very useful in more complicated scripts to find out the order things are done in. The function that the user is currently looking at is highlighted in blue. You can move up or down the call stack by clicking on a line. The main text window will jump to the correct file and line. The line will be shown with a blue triangle instead of a green triangle. Exceptions Sometimes when developing a script you get errors that you need to try to investigate and fix. e.g. an object is null when it should be defined or you try to call a method that does not exist for an object. In these cases an exception is thrown by JavaScript and the script would terminate is run normally. JaDe will trap the exception and stop at the line where the exception occured. e.g. If for example you has the following code: var w = new Window(’Example’, 0.5, 1.0, 0.5, 1.0); w.BadMethod(); w.Show() for a Window . JaDe will stop at this point and allow you to look at the script. There is no method called BadMethod Page M.5

532 T/HIS User manual Version 15.0, May 2018 Page M.6

533 User manual Version 15.0, May 2018 T/HIS Licences used in software The Oasys LS-DYNA environment Ltd software uses several third party libraries and executables. The licences for them are given below Expat Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE FFmpeg FFmpeg is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. FFmpeg is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with FFmpeg; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Jpeg The authors make NO WARRANTY or representation, either express or implied, with respect to this software, its quality, accuracy, merchantability, or fitness for a particular purpose. This software is provided "AS IS", and you, its user, assume the entire risk as to its quality and accuracy. This software is copyright (C) 1991-2012, Thomas G. Lane, Guido Vollbeding. All Rights Reserved except as specified below. Permission is hereby granted to use, copy, modify, and distribute this software (or portions thereof) for any purpose, without fee, subject to these conditions: (1) If any part of the source code for this software is distributed, then this README file must be included, with this copyright and no-warranty notice unaltered; and any additions, deletions, or changes to the original files must be clearly indicated in accompanying documentation. (2) If only executable code is distributed, then the accompanying documentation must state that "this software is based in part on the work of the Independent JPEG Group". (3) Permission for use of this software is granted only if the user accepts full responsibility for any undesirable consequences; the authors accept NO LIABILITY for damages of any kind. These conditions apply to any software derived from or based on the IJG code, Page N.1

534 T/HIS User manual Version 15.0, May 2018 not just to the unmodified library. If you use our work, you ought to acknowledge us. Permission is NOT granted for the use of any IJG author’s name or company name in advertising or publicity relating to this software or products derived from it. This software may be referred to only as "the Independent JPEG Group’s software". We specifically permit and encourage the use of this software as the basis of commercial products, provided that all warranty or liability claims are assumed by the product vendor. Libcurl COPYRIGHT AND PERMISSION NOTICE Copyright (c) 1996 - 2012, Daniel Stenberg, . All rights reserved. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. Libfame libfame - Fast Assembly MPEG Encoder Library Copyright (C) 2000-2001 Vivien Chappelier This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Libgif The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Libpng This copy of the libpng notices is provided for your convenience. In case of any discrepancy between this copy and the notices in the file png.h that is Page N.2

535 User manual Version 15.0, May 2018 T/HIS included in the libpng distribution, the latter shall prevail. COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: If you modify libpng you may insert additional notices immediately following this sentence. This code is released under the libpng license. libpng versions 1.2.6, August 15, 2004, through 1.5.11, June 14, 2012, are Copyright (c) 2004, 2006-2012 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.2.5 with the following individual added to the list of Contributing Authors Cosmin Truta libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals added to the list of Contributing Authors Simon-Pierre Cadieux Eric S. Raymond Gilles Vollant and with the following additions to the disclaimer: There is no warranty against interference with your enjoyment of the library or against infringement. There is no warranty that our efforts or the library will fulfill any of your particular purposes or needs. This library is provided with all faults, and the entire risk of satisfactory quality, performance, accuracy, and effort is with the user. libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-0.96, with the following individuals added to the list of Contributing Authors: Tom Lane Glenn Randers-Pehrson Willem van Schaik libpng versions 0.89, June 1996, through 0.96, May 1997, are Copyright (c) 1996, 1997 Andreas Dilger Distributed according to the same disclaimer and license as libpng-0.88, with the following individuals added to the list of Contributing Authors: John Bowler Kevin Bracey Sam Bushell Magnus Holmgren Greg Roelofs Tom Tanner libpng versions 0.5, May 1995, through 0.88, January 1996, are Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. For the purposes of this copyright and license, "Contributing Authors" is defined as the following set of individuals: Andreas Dilger Dave Martindale Guy Eric Schalnat Paul Schmidt Tim Wegner The PNG Reference Library is supplied "AS IS". The Contributing Authors and Group 42, Inc. disclaim all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The Contributing Authors and Group 42, Inc. assume no liability for direct, indirect, incidental, special, exemplary, or consequential damages, which may result from the use of the PNG Reference Library, even if advised of the possibility of such damage. Permission is hereby granted to use, copy, modify, and distribute this source code, or portions hereof, for any purpose, without fee, subject to the following restrictions: 1. The origin of this source code must not be misrepresented. 2. Altered versions must be plainly marked as such and must not be misrepresented as being the original source. 3. This Copyright notice may not be removed or altered from any source or altered source distribution. The Contributing Authors and Group 42, Inc. specifically permit, without fee, and encourage the use of this source code as a component to supporting the PNG file format in commercial products. If you use this source code in a product, acknowledgment is not required but would be appreciated. A "png_get_copyright" function is available, for convenient use in "about" Page N.3

536 T/HIS User manual Version 15.0, May 2018 boxes and the like: printf("%s",png_get_copyright(NULL)); Also, the PNG logo (in PNG format, of course) is supplied in the files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a certification mark of the Open Source Initiative. Glenn Randers-Pehrson glennrp at users.sourceforge.net June 14, 2012 Libxlsxwriter Libxlsxwriter is released under a FreeBSD license: Copyright 2014-2016, John McNamara All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project. Libxlsxwriter includes ‘queue.h‘ from FreeBSD and the ‘minizip‘ component of ‘zlib‘ which have the following licenses: Queue.h from FreeBSD: Copyright (c) 1991, 1993 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Zlib has the following License/Copyright: (C) 1995-2013 Jean-loup Gailly and Mark Adler This software is provided ’as-is’, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, Page N.4

537 User manual Version 15.0, May 2018 T/HIS including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu Openssl LICENSE ISSUES ============== The OpenSSL toolkit stays under a double license, i.e. both the conditions of the OpenSSL License and the original SSLeay license apply to the toolkit. See below for the actual license texts. OpenSSL License --------------- /* ==================================================================== * Copyright (c) 1998-2017 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. All advertising materials mentioning features or use of this * software must display the following acknowledgment: * "This product includes software developed by the OpenSSL Project * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" * * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to * endorse or promote products derived from this software without * prior written permission. For written permission, please contact * openssl-core@openssl.org. * * 5. Products derived from this software may not be called "OpenSSL" * nor may "OpenSSL" appear in their names without prior written * permission of the OpenSSL Project. * * 6. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by the OpenSSL Project * for use in the OpenSSL Toolkit (http://www.openssl.org/)" * * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ‘‘AS IS’’ AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This product includes cryptographic software written by Eric Young Page N.5

538 T/HIS User manual Version 15.0, May 2018 * (eay@cryptsoft.com). This product includes software written by Tim * Hudson (tjh@cryptsoft.com). * */ Original SSLeay License ----------------------- /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * * This package is an SSL implementation written * by Eric Young (eay@cryptsoft.com). * The implementation was written so as to conform with Netscapes SSL. * * This library is free for commercial and non-commercial use as long as * the following conditions are aheared to. The following conditions * apply to all code found in this distribution, be it the RC4, RSA, * lhash, DES, etc., code; not just the SSL code. The SSL documentation * included with this distribution is covered by the same copyright terms * except that the holder is Tim Hudson (tjh@cryptsoft.com). * * Copyright remains Eric Young’s, and as such any Copyright notices in * the code are not to be removed. * If this package is used in a product, Eric Young should be given attribution * as the author of the parts of the library used. * This can be in the form of a textual message at program startup or * in documentation (online or textual) provided with the package. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * "This product includes cryptographic software written by * Eric Young (eay@cryptsoft.com)" * The word ’cryptographic’ can be left out if the rouines from the library * being used are not cryptographic related :-). * 4. If you include any Windows specific code (or a derivative thereof) from * the apps directory (application code) you must include an acknowledgement: * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" * * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ‘‘AS IS’’ AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * The licence and distribution terms for any publically available version or * derivative of this code cannot be changed. i.e. this code cannot simply be * copied and put under another distribution licence * [including the GNU Public Licence.] */ PCRE PCRE LICENCE ------------ PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Release 7 of PCRE is distributed under the terms of the "BSD" licence, as Page N.6

539 User manual Version 15.0, May 2018 T/HIS specified below. The documentation for PCRE, supplied in the "doc" directory, is distributed under the same terms as the software itself. The basic library functions are written in C and are freestanding. Also included in the distribution is a set of C++ wrapper functions. THE BASIC LIBRARY FUNCTIONS --------------------------- Written by: Philip Hazel Email local part: ph10 Email domain: cam.ac.uk University of Cambridge Computing Service, Cambridge, England. Copyright (c) 1997-2008 University of Cambridge All rights reserved. THE C++ WRAPPER FUNCTIONS ------------------------- Contributed by: Google Inc. Copyright (c) 2007-2008, Google Inc. All rights reserved. THE "BSD" LICENCE ----------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the name of Google Inc. nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. End POV-Ray Is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 which may be t p : / / w w w . p o v r a y . o r g / p o v l e g a l . h t m l h found here t Oasys Ltd use the POV-Ray executable in unmodified form as a separate, stand-alone entity. We have not modified the source code or the executable in any way. We convey the executable as part of our installation package, and in accordance with the licence: • Users who install POV-Ray must accept the licence terms cited above. • We provide a download of the POV-Ray executable and source code on our website t p : / / w w w . o a s y s - s o f t w a r e . c o m / d y n a / e n / h t SmoothSort Is licensed under the Creative Commons Attribution-ShareAlike 3.0 license which may be found here: t p s : / / c r e a t i v e c o m m o n s . o r g / l h c e n s e s / b y - s a / 3 . 0 / l e g a l c o d e i t Page N.7

540 T/HIS User manual Version 15.0, May 2018 Oasys Ltd acknowledge Wikibooks as the source of this algorithm, which is used in unmodified form. Spidermonkey Mozilla Public License Version 2.0 ================================== 1. Definitions -------------- 1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. 1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution. 1.3. "Contribution" means Covered Software of a particular Contributor. 1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. 1.5. "Incompatible With Secondary Licenses" means (a) that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or (b) that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. 1.6. "Executable Form" means any form of the work other than Source Code Form. 1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. "License" means this document. 1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. 1.10. "Modifications" means any of the following: (a) any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or (b) any new file in Source Code Form that contains any Covered Software. 1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. 1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. 1.13. "Source Code Form" means the form of the work preferred for making modifications. 1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. Page N.8

541 User manual Version 15.0, May 2018 T/HIS 2. License Grants and Conditions -------------------------------- 2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: (a) under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and (b) under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. 2.2. Effective Date The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. 2.3. Limitations on Grant Scope The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: (a) for any code that a Contributor has removed from Covered Software; or (b) for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or (c) under Patent Claims infringed by Covered Software in the absence of its Contributions. This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). 2.4. Subsequent Licenses No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). 2.5. Representation Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. 2.6. Fair Use This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. 2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. 3. Responsibilities ------------------- 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form. 3.2. Distribution of Executable Form If You distribute Covered Software in Executable Form then: (a) such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and (b) You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License. Page N.9

542 T/HIS User manual Version 15.0, May 2018 3.3. Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). 3.4. Notices You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. 3.5. Application of Additional Terms You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. 4. Inability to Comply Due to Statute or Regulation --------------------------------------------------- If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Termination -------------- 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. 5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. ************************************************************************ * * * 6. Disclaimer of Warranty * * ------------------------- * * * * Covered Software is provided under this License on an "as is" * * basis, without warranty of any kind, either expressed, implied, or * Page N.10

543 User manual Version 15.0, May 2018 T/HIS * statutory, including, without limitation, warranties that the * * Covered Software is free of defects, merchantable, fit for a * * particular purpose or non-infringing. The entire risk as to the * * quality and performance of the Covered Software is with You. * * Should any Covered Software prove defective in any respect, You * * (not any Contributor) assume the cost of any necessary servicing, * * repair, or correction. This disclaimer of warranty constitutes an * * essential part of this License. No use of any Covered Software is * * authorized under this License except under this disclaimer. * * * ************************************************************************ ************************************************************************ * * * 7. Limitation of Liability * * -------------------------- * * * * Under no circumstances and under no legal theory, whether tort * * (including negligence), contract, or otherwise, shall any * * Contributor, or anyone who distributes Covered Software as * * permitted above, be liable to You for any direct, indirect, * * special, incidental, or consequential damages of any character * * including, without limitation, damages for lost profits, loss of * * goodwill, work stoppage, computer failure or malfunction, or any * * and all other commercial damages or losses, even if such party * * shall have been informed of the possibility of such damages. This * * limitation of liability shall not apply to liability for death or * * personal injury resulting from such party’s negligence to the * * extent applicable law prohibits such limitation. Some * * jurisdictions do not allow the exclusion or limitation of * * incidental or consequential damages, so this exclusion and * * limitation may not apply to You. * * * ************************************************************************ 8. Litigation ------------- Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims. 9. Miscellaneous ---------------- This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. 10. Versions of the License --------------------------- 10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. 10.2. Effect of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. 10.3. Modified Versions If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the Page N.11

544 T/HIS User manual Version 15.0, May 2018 notice described in Exhibit B of this License must be attached. Exhibit A - Source Code Form License Notice ------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. You may add additional accurate notices of copyright ownership. Exhibit B - "Incompatible With Secondary Licenses" Notice --------------------------------------------------------- This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. Win-iconv win_iconv is a iconv implementation using Win32 API to convert. win_iconv is placed in the public domain. Yukihiro Nakadaira Zlib (C) 1995-2013 Jean-loup Gailly and Mark Adler This software is provided ’as-is’, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu Page N.12

Related documents