WRITE TO FILE
WRITE TO FILE
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.
FILE FORMATWrites 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.
|
| T/HIS .cur format | This option will write out curves using the default T/HIS curve format. One 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 for each curve (see Appendix B for more details on the curve file format) |
| Ansys LS-DYNA Keyword | One file will be written containing all the selected curves using the Ansys LS-DYNA *DEFINE_CURVE format so that the file is suitable for inclusion in a Ansys LS-DYNA keyword file. |
| NASTRAN TABLE D1 | This option will write out curves using the NASTRAN TABLE D1 format. Curves are listed sequentially in the file. |
| CSV X,Y,X,Y,X,Y | This option will write out curves using as a CSV (comma separated variable) 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 ... |
|
CSV X,Y,Y,Y,Y,Y
|
This option 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) version of the summary file. |
| ISO-MME |
The ISO-MME format (ISO/TS 13499) is a data exchange format for crash analyses comprising a number of folders and files. Two methods exist based on the type of data source used: Curves or Models. Selecting Curves launches the Curve to ISO-MME script for export configuration which requires user input to select the curves and other options. Selecting Models requires choosing a model for T/HIS to extract the data from and provide a configuration file to specify what data should be written out.
This extra configuration is needed because the naming conventions of the output files, set out in the ISO
standard, follow specific rules which require extra data that isn't present in
the curves alone and they also contain lines at the top of the files which describe
the data in more detail. The contents of the configuration file are described in
ISO-MME Configuration File.
A side by side comparison of the panel for output format ISO-MME with Data Source set to Curves and Models is shown below:
And this is how the Curve to ISO-MME script popup that appears when the "Next" button is pressed looks like.
|
|
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 FAST-TCF) |
ISO-MME Configuration File
The ISO-MME configuration file is a JSON format file which is used to tell T/HIS which curves to generate: the data to extract, from which entities to extract it, their locations in the model and whether any filtering or operations are required. This configuration file is required so T/HIS can write various ISO-MME files with the correct names and any additional data required at the top of the files.
To set the scene, the structure of the directory where various files get written out and the files it contains is:
| ISO-MME Version 1.6 | ISO-MME Version 2.0 |
|
Output Dir | |-- <Virtual Testing reference ID>.mme <= Test Data | |-- Channel | |-- <Virtual Testing reference ID>.chn <= Channel index file |-- <Virtual Testing reference ID>.001 <= Channel data files |-- <Virtual Testing reference ID>.002 . |-- <Virtual Testing reference ID>.003 . |
Output Dir | |-- <testname>.mme <= Test information file | |-- Channel | | | |-- <testname>_Channel.mmi <= Channel index file | |-- <testname>_<channel_code>.mmd <= Channel data files | |-- <testname>_<channel_code>.mmd . | |-- <testname>_<channel_code>.mmd . | |-- Object | |-- <testname>_<object_code>.mmi <= Object files |-- <testname>_<object_code>.mmi . |-- <testname>_<object_code>.mmi . |
Test information file (.mme file)
The test information file describes the test and the objects (vehicles, dummies, barriers) in it. As an example:
| ISO-MME Version 1.6 |
ISO-MME Version 2.0
|
|
Data format edition number :1.6 Customer name :ARUP Customer test ref. number :NOVALUE Customer project ref. number:9999 Title :NOVALUE Timestamp :2022-09-29 13:30:00 Type of the test :NOVALUE Subtype of the test :NOVALUE Virtual Testing reference ID:NOVALUE Regulation :NOVALUE Date of the test :2022-10-02 Name of test object 1 :NOVALUE Ref. number of test object 1:NOVALUE Velocity test object 1 lon. :NOVALUE Velocity test object 1 lat. :NOVALUE Mass test object 1 :1230 Driver position object 1 :3 Impact side test object 1 :LE Name of test object 2 :NOVALUE Ref. number of test object 2:NOVALUE Velocity test object 2 lon. :NOVALUE Velocity test object 2 lat. :NOVALUE Mass test object 2 :1230 Driver position object 2 :2 Impact side test object 2 :LE |
Type of data source :Simulation Data format edition number :2.0 Timestamp :2020-11-10 Laboratory name :Arup Laboratory contact name :NOVALUE Laboratory contact phone :NOVALUE Laboratory contact fax :NOVALUE Laboratory contact email :NOVALUE Laboratory test ref number :NOVALUE Type of the test :NOVALUE Subtype of the test :NOVALUE Regulation :NOVALUE Date of the test :NOVALUE Number of test objects :2 #Begin of testobject Type :D Filename :my_test_D0.mmi #End of testobject #Begin of testobject Type :1 Filename :my_test_1.mmi #End of testobject |
Object files (.mmi file)
These files are only present in ISO-MME Version 2.0. The object files describe each object in the test, for example:
Name :H350
Velocity :NOVALUE
Mass :NOVALUE
Impact side :00
#Begin of biomechanical
Gender :male
Age :21
#End of biomechanical
Channel index file (.chn or .mmi file)
The channel index file lists the channel data files:
| ISO-MME Version 1.6 (.chn file) | ISO-MME Version 2.0 (.mmi file) |
|
Instrumentation standard : Not applicable Number of channels :7 Name of channel 001 :13HEAD0000WSACX0 Name of channel 002 :13HEAD0000WSACY0 Name of channel 003 :13HEAD0000WSACZ0 Name of channel 004 :13HEAD0000WSDCX0 |
Number of channels :3 Data origin :S Data source : simulation #Begin of channel Extended channel code :D0HEADMI0000000B #End of channel #Begin of channel Extended channel code :D0CHSTMI0000000C #End of channel #Begin of channel Extended channel code :D0PELVMI0000000C #End of channel |
Channel data files (.001 or .mmd file)
The channel data file that gives the details about the curve:
| ISO-MME Version 1.6 (.001 file) | ISO-MME Version 2.0 (.mmd file) |
|
Test object number :1 Name of the channel : Laboratory channel code :NOVALUE Customer channel code :NOVALUE Channel code :13HEAD0000WSACX0 Unit :m / (s * s) Reference system :NOVALUE Transducer type :NOVALUE Pre-filter type :NOVALUE Cut off frequency :NOVALUE Channel amplitude class :NOVALUE Sampling interval :0.0001 Bit resolution :NOVALUE Time of first sample :NOVALUE Number of samples :1999 -0.42144 -0.00030 -0.00028 |
Data structure :Channel Instrumentation standard :NOVALUE Name of the channel :Accel x - Node 52503304 : (PelvisAccel_INJURY) (Reg 0.100E-03) (C 180) Data source :simulation Data status :ok Cut off frequency :NOVALUE Channel amplitude class :NOVALUE Sampling interval :0.0001 Bit resolution :NOVALUE Time of first sample :0 Number of samples :1500 Reference channel :implicit #Start of data -6.09125e-05 -1785.28 -3315.55 . . #End of data |
Configuration structure
Below is an illustration of the configuration file structure.
- Test data: At the top of the file is a list of test data properties, followed by a list of descriptors for the test.
- Objects array: Next is a list of objects (e.g. vehicles, dummies, barriers) and their properties and descriptors.
Channels and Operations arrays are used to specify the Curve properties to output required curves:
- Channels array: Each channel in the array is defined as an object with properties such as , id, etc. to create a single curve with its ISO-MME channel code defined in properties like , etc.
- Operations array: Each operation object defines an operation to be performed on any previously defined or multiple curves. Operations can be chained together. The final output should be an ISO-MME channel code.
Configuration File Structure
{
|
| -- Test Data Property 1
| -- Test Data Property 2
| -- Test Data Property 3
| -- Descriptors
| | -- Descriptor 1
| | -- Descriptor 2
|
| -- Object Type 1
| | -- Object 11
| | | -- Property 1
| | | -- Property 2
| | | -- Descriptors
| | | -- Descriptor 1
| | | -- Descriptor 2
| |
| | -- Object 12
| | | -- Property 1
| | | -- Property 2
|
| -- Object Type 2
| | -- Object 21
| | | -- Property 1
| | | -- Property 2
| |
| | -- Object 22
| | | -- Property 1
| | | -- Property 2
|
|
| -- Channels
| | -- Channel 1
| | | -- Channel Property 1
| | | -- Channel Property 2
| |
| | -- Channel 2
| | | -- Channel Property 1
| | | -- Channel Property 2
| |
| | -- Channel 3
| | | -- Channel Property 1
| | | -- Channel Property 2
| | | -- Descriptors
| | | -- Descriptor 1
| | | -- Descriptor 2
|
| -- Operations
| | -- Operation 1
| | | -- Operation Property 1
| | | -- Operation Property 2
| |
| | -- Operation 2
| | | -- Operation Property 1
| | | -- Operation Property 2
| | | -- Descriptors
| | | -- Descriptor 1
| | | -- Descriptor 2
}
Configuration file example
Below is an example configuration file, showing all the available options that can be set. Not all of them are required – the list below shows which ones are optional and what they can be set to.
JSON |
{ |
Configuration file properties
The following tables list all the required and optional properties and what they can be set to. If they aren't set, the default value is used.
Some values should follow the guidance in the ISO Related Electronic Documents A and B (RED A and RED B) and they are indicated below. They can be found on the ISO-MME forum.
Test Data properties
The first Table specifies the Test Data properties which provide details about the test. It is necessary to include and .
| Property | Description | Valid values | Default | Type | Necessity |
|---|---|---|---|---|---|
| testName | Name of test. This is used for the test directory name and in the filenames. | Any value | - | String | Required |
| formatVersion | Format Version specifies the ISO-MME output version required. | 1.6 or 2.0 | 2.0 | String | Required |
| thisVersion | T/HIS Build Version | Any Numerical value. For Eg:- “21.0” | - | String | Required |
| thisBuildNumber | T/HIS Build Number | Any numerical value. For Eg:- “6100” | - | String | Required |
| timestamp | A timestamp dates. It is written in the header of the test information *.mme file. | Any value, but the expected format is "yyyy-mm-dd". | "NOVALUE" | String | Optional |
| laboratoryName | The laboratory name. It is written in the header of the test information *.mme file. | Any value. | "NOVALUE" | String | Optional |
| laboratoryContactName | The laboratory contact name. It is written in the header of the test information *.mme file. | Any value. | "NOVALUE" | String | Optional |
| laboratoryContactPhone | The laboratory contact phone number. It is written in the header of the test information *.mme file. | Any value. | "NOVALUE" | String | Optional |
| laboratoryContactFax | The laboratory contact fax number. It is written in the header of the test information *.mme file. | Any value. | "NOVALUE" | String | Optional |
| laboratoryContactEmail | The laboratory contact email. It is written in the header of the test information *.mme file. | Any value. | "NOVALUE" | String | Optional |
| laboratoryTestRef | The laboratory test reference. It is written in the header of the test information *.mme file. | Any value. | "NOVALUE" | String | Optional |
| typeOfTest | The test type. It is written in the header of the test information *.mme file. | See the ISO Related Electronic Document A for valid values, e.g. "Frontal Impact". | "NOVALUE" | String | Optional |
| subtypeOfTest | The test subtype. It is written in the header of the test information *.mme file. | See the ISO Related Electronic Document A for valid values, e.g. "0 Degree Active". | "NOVALUE" | String | Optional |
| virtualTestingReferenceId | The virtual testing ref id is used to write the filename for channel index file and channel data file. | Any value. | "NOVALUE" | string | Optional |
| typeOfDataSource | Type of data source. It is written in the header of the test information *.mme file. | Any value. | "NOVALUE" | String | Optional |
| regulation | The test regulation. It is written in the header of the test information *.mme file. | See the ISO Related Electronic Document A for valid values, e.g. "EuroNCAP". | "NOVALUE" | String | Optional |
| testDate | The date of the test. It is written in the header of the test information *.mme file. | Any value, but the expected format is "yyyy-mm-dd". | "NOVALUE" | String | Optional |
| unitSystemModel | Used to set up units for model. If these are not provided the units would be as they were prior to write ISO-MME or undefined if units were not set. | "U1","U2","U3","U4","U5","U6". | blank | String | Optional |
| unitSystemDisplay | Used to set up units for display. Will be set to SI if model units specified and display units not specified. | "U1","U2","U3","U4","U5","U6". | blank | String | Optional |
| xAxisInterval | Used to specify X Axis Interval for all curves to regularised. | 0 to 1e-7 | blank | Number | Optional |
| mandatoryHeaders | Used to specify whether mandatory headers are to be included. | true or false | true | boolean | Optional |
Descriptor properties
Along with the predefined properties listed in the tables detailing about Test, Objects and Channels, you can define any additional descriptor you like by providing a description and value using the syntax in the table below.
The descriptor JSON object allows you to define any number of descriptors that can appear in the ISO MME files:
- Test data file (.mme) if defined in Test data block
- Object files (.mmi) if defined in Object blocks
- Data Files (.001 or. mmd) if defined in Channel or Operation blocks
To provide any valid description/value please see the see the details below.
| Property | Description | Valid values | Default | Type | Necessity |
|---|---|---|---|---|---|
| description | The Name of the Property for which you are creating the description. | This is supposed to mentioned as String as required by protocols. For eg. "Time step setting", "Number of CPUs" | NOVALUE | String | Optional |
| value | The Property which is defined in the ‘description’ is specified a value in this section. | This can be either string or integer for example -0.2 or " Value" | NOVALUE | Number or String | Optional |
Object arrays
The table lists the ‘Standard’ object types that are supported by T/HIS. Currently T/HIS supports the following objects:
| Objects | Description | Properties | Definition String | Default TestObject |
|---|---|---|---|---|
| vehicles | The vehicles array contains vehicle objects. | name, velocity, mass, impactSide | “vehicles” | Numerical starting from 1 |
| dummies | The dummies array contains dummy objects.
| name, gender, age, position | “dummies” | ‘D’ |
| barriers | The barriers array contains barrier objects.
| name, barrierWidth, barrierHeight, yawAngle | “barriers” | ‘B’ |
| mobileBarriers | The mobileBarriers array contains mobile barrier objects. | name, barrierWidth, barrierHeight, yawAngle | “mobileBarriers” | ‘M’ |
Object properties
This table lists the properties that are supported by T/HIS for different objects. The properties provide details about the object.
| Property | Description | Valid values | Default | Type | Necessity |
|---|---|---|---|---|---|
| testObject | testObject classification. It is the first character in the ISO-MME channel code. This property is used to name Object files (.mmi) | See the 'Test Object' section in the ISO Related Electronic Document B for valid values, e.g. "1", "2", “D” etc. | “D” for Dummies “M” for mobileBarriers Numerical Value for Vehicle | String | Required |
| position | The dummy’s position in the vehicle. It is the second character in the ISO-MME channel code. This property is used to name Object files(.mmi) | See the ‘Position’ section in the ISO Related Electronic Document B for valid values, e.g. “1”, “2”. | “0” | String | Required |
| name | The test object name. It is written in the header of the object *.mmi file for Version 2.0 and mentioned in *.mme in Version 1.6. | Any value | blank | String | Optional |
| velocity | The object’s velocity. It is written in the header of the object *.mmi file. | Any value | "NOVALUE" | Number | Optional |
| mass | The object’s mass. It is written in the header of the object *.mmi file. | Any value | "NOVALUE" | Number | Optional |
| impactSide | It is written in the header of the object *.mmi file. | See the 'Fine Location 1' section in the ISO Related Electronic Document B for valid values, e.g., "LE", "LO". | "00" | String | Optional |
| gender | The dummy gender. It is written in the object *.mmi file. | Any value | "NOVALUE" | String | Optional |
| age | The dummy age. It is written in the object *.mmi file. | Any value | "NOVALUE" | Number | Optional |
| barrierWidth | The barrier width. It is written in the object *.mmi file. | Any value | 0.0 | Number | Optional |
| barrierHeight | The barrier height. It is written in the object *.mmi file. | Any value | 0.0 | Number | Optional |
| yawAngle | The barrier yaw angle. It is written in the object *.mmi file. | Any value | 0.0 | Number | Optional |
Channel Data properties
Channel Properties are used to define details about the Channel.
| Property | Description | Valid values | Default | Type | Necessity | |
|---|---|---|---|---|---|---|
| testObject | testObject classification. It is the first character in the ISO-MME channel code. | See the 'Test Object' section in the ISO Related Electronic Document B for valid values, e.g. "1", "2", “D” etc. | “D” for Dummies “M” for mobileBarriers Numerical Value for Vehicle | String | Required | |
| position | The dummy’s position in the vehicle. It is the second character in the ISO-MME channel code. | See the 'Position' section in the ISO Related Electronic Document B for valid values, e.g. "1", "2". | "0" | String | Required | |
| mainLocation | Main location on the object. This is required for the channel code. | See the ISO Related Electronic Document B for valid values, e.g. "HEAD", "CHST". | - | String | Required | |
| entityType | The Ansys LS-DYNA entity types to extract data for. | A FAST-TCF data extraction keyword (See Section 7.4.5), e.g. "node", "beam" | - | String | Required | |
id
| The Ansys LS-DYNA entity ID to extract data for.
| This can be the numerical ID or a *DATABASE_HISTORY_ID name or an array of IDs or names.
If an array is defined, the output generated is the sum of the individual curves.
In either case, the IDs/names should be specified as a string or number, e.g. "100",100, "my_node_id", [100, 200, 101], ["my_node_id_1","my_node_id_2"].
The <id> property is not required for global data (e.g. global kinetic energy). | -
| Number, String, Array of String or Numbers
| Optional | |
| component | The component to read. | FAST-TCF data extraction component words (See Section 7.4.5), e.g. "displacement x", "energy" | - | String | Required | |
| source | The LS-DYNA file to read data from. | A FAST-TCF file keyword (See Section 7.4.2.1), e.g. "lsda", "thf" | Blank (will extract data from the default file for the specified entity type). | String | Optional | |
| fineLocation1 | Fine location on the object. This is used for the channel code. | See the 'Fine Location 1' section in the ISO Related Electronic Document B for valid values, e.g. "IN", "OU". | "00" | String | Optional | |
| fineLocation2 | Fine location on the object. This is used for the channel code. | See the 'Fine Location 2' section in the ISO Related Electronic Document B for valid values, e.g. "IN", "OU". | "00" | String | Optional | |
| fineLocation3 | Fine location on the object. This is used for the channel code. | See the 'Fine Location 3' section in the ISO Related Electronic Document B for valid values, e.g. "IN", "OU". | "00" | String | Optional | |
| physicalDimension | Physical dimension data is determined automatically from the required "component" property but can be overwritten with this optional property. This is used for the channel code. | See the 'Physical Dimension' section in the ISO Related Electronic Document B for valid values, e.g. "AN", "DS". | "00" | String | Optional | |
| direction | The data direction is determined automatically from the required "component" property but can be overwritten with this optional property. This is used for the channel code. | See the 'Direction' section in the ISO Related Electronic Document B for valid values, e.g. "R", "X". | "0" | String | Optional | |
| xAxis Interval | Used to specify x Axis Interval for the curve to be regularised. This will overridethe x Axis Interval property specified in test info block | 0 to 1e-7 | blank | Number | Optional | |
| filter | A filter to use on the extracted data. | The Filter Class Code are positioned 16th in the ISO-MME Channel Code. The following Filter Class Code are supported by T/HIS: - | blank (UnFiltered) | String | Optional | |
| Filter Class Code | Description | |||||
| “0” | Unfiltered | |||||
| “1” | FIR100 | |||||
| “2” | Combined A and B | |||||
| “A” | CFC1000 | |||||
| “B” | CFC600 | |||||
| “C” | CFC180 | |||||
| “D” | CFC60 | |||||
| “E” | CFC1000 | |||||
| “F” | CFC600 | |||||
| “G” | CFC180 | |||||
| “H” | CFC60 | |||||
| write | An option to select whether the curve should be written to ISO-MME format. | Acceptable values are 'true' and 'false'. The default case is taken as true.
If set to false, at the end of the ISO-MME writing process in FAST-TCF, the curve is deleted. | true | Boolean | Optional | |
| testObjectHeaderNumber | Variable to specify test Object Number
| Any alphanumeric character
| First Letter of the ISO-Code | String | Optional | |
Operation Data properties
Some ISO-MME channels can be written directly from the Ansys LS-DYNA results data. However, many require further operations, for example to apply filtering or convert a rotation sensor to a displacement. Each operation takes one or more inputs, uses FAST-TCF to perform the underlying operation, and produces an output. You can “chain” several operations together to produce the desired final output. Intermediate outputs can be given any name; the final output names must match the desired ISO-MME channel code. The following table lists the properties required to define each operation.
| Property | Description | Valid values | Default | Type | Necessity |
|---|---|---|---|---|---|
| operation | The type of operation to be performed on the input curves. | The accepted values for the operation are FAST-TCF Operation values as mentioned in Section 7.8 operation commands (e.g. "muly", "add"). | - | String | Required |
| input | To process operations by FAST-TCF File, T/HIS requires arguments based on the type of operation. | Accepted inputs are ISO-MME channel codes for already created curves in the channel block or output curves created in Operation Block, or Numerical Values.
The elements in the Input array are required to be in same order as mentioned in FAST-TCF Manual 7.8.
Eg:- [ "11ABRIRI02WSAN#0", 1.570796] | - | Array of strings or Numbers | Required |
| output | The output property is used to specify the FAST-TCF curve tag. | For intermediate operation outputs, this can be any string. For the final output, this should be a valid ISO-MME channel code. Eg:- "intermediate curve" or ”11ABRIRI02WSANZC” | - | String | Required |
| write | An option to select whether the curve should be outputted. | Acceptable values are 'true' and 'false'. The default case is taken as true.
If set to false, at the end of the ISO-MME writing process in FAST-TCF, the curve is deleted. | true | Boolean | Optional |
