5.2. C++ Extractors

This section describes the available c++ extractor commands

d3plot

extractor -t d3plot

--file,-f file_name             - input file_name
--part,-p n                     - option to output part info for a single part id
--element,-e n                  - option to output element info for a single element id
--node,-n list                  - option to output infor for 1 or more node ids
--component,-c n                - option to output info for a component
    (ps, vm, ie, ke, x_coord, y_coord, z_coord, total_coord, x_disp, y_disp, z_disp, res_disp, x_vel, y_vel, z_vel, res_vel, x_accel, y_accel, z_accel, res_accel)
--output,-o file_name           - output file_name
--summary,-s                    - flag to output summary
--help,-h                       - help message
--verbose,-v                    - flag for verbose
--debug,-d                      - flag for debug information
--bom-exclude-vm                - flag to exclude von-mises from the bom
--bom-exclude-eps               - flag to exclude plastic strain from the bom
--bom-exclude-non-zero-ie       - flag to exclude non zero internal energy values from the bom
--bom-exclude-non-zero-vm       - flag to exclude non zero von-mises values from the bom
--bom-exclude-non-zero-eps      - flag to exclude non zero plastic strain values from the bom
--bom-order-by str              - order the bom by a component
    (ie | ke | x_vel | y_vel | z_vel | mass | hge | eps | vm)
--bom-order-type str            - sort order (desc, asc) default is ascending
--bom-limit n                   - only include n values in the bom
--bom-partition-num n           - include a bom for each n partitions
--output-spaces                 - flag to output json or js3d on mutiple lines insead of all on one line
--js3d list                     - comma separted list of states
--js3d-group-file file_name     - group file name to read for js3d output
--js3d-set-precision n          - set the precision for js3d output
--js3d-num-states n             - limit the number of states for js3d output
--js3d-search-group             - flag to search for group file in the current directory
--js3d-threshold n              - skip elements outside the threshold
--js3d-threshold-left n         - first state number for threshold
--js3d-threshold-right n        - end state number for threshold
--js3d-transform-cs list        - comma separated list of 3 or 9 coordinates
--js3d-transform-cs-ids list    - comma separated list of 1 or 3 ids
--js3d-follow-node node_id      - option to follow a node_id when annimating the js3d
--js3d-output-name file_name    - file name for js3d output
--js3d-fringe-eps               - flag to include plastic strain fringes
--js3d-fringe-vm                - flag to include von-mises fringes
--js3d-fringe-disp              - flag to include displacement fringes
--js3d-fringe-vel               - flag to include velocity fringes
--js3d-shade-factor n           - factor to multiply each color component by to change the shade (between 0 and 1, 0 is darkest and 1 is brightest, 1 is default)
--js3d-element-deletion         - flag to include element deletion
--js3d-node-ids                 - flag to add node ids to js3d
--js3d-element-ids              - flag to add element ids to js3d
--js3d-bom                      - flag to include the bill of materials
--js3d-top-parts str_list       - comma separated list of types
    (ie, mv, eps) add a number of curves to the js3d output based on the js3d-top-n value
--js3d-top-n n                  - cut off limit for js3d-top-parts
--parts part_ids                - comma separted list of part ids
--fringe-sph types_list         - comma separted list of types
    (density, plastic_string, mass, pressure)
--js3d-include-groups           - flag description
--js3d-fringe-xdisp             - flag to include x-displacement fringes in the js3d output
--js3d-fringe-ydisp             - flag to include y-displacement fringes in the js3d output
--js3d-fringe-zdisp             - flag to include z-displacement fringes in the js3d output
--setw n                        - number of spaces to indent the output (0 or not setting this command at all is no indent)
--all-faces                     - flag include all faces for elements even if they are duplicates from other elements
--output-connectivities         - flag to output connectivities
--js3d-fringe-history list      - comma separted list of history var numbers
    includes history variable fringes in the js3d
--js3d-fringe-triaxiality       - flag to include triaxiality fringes
--state-inc states_list         - comma separted list of states, or start:end[:increment]
--add-mesh-lines                - flag to add mesh lines to js3d

d3hsp

extractor -t d3hsp

positional arguments
(1) rule.json file
(2) d3hsp file

ex:
extractor -t d3hsp rules.json d3hsp

punch

extractor -t punch

--file,-f file_name             - punch file path
--input-json,-i file_name       - input json to extract a curve
--output file_name              - output file
--summary,-s                    - flag to include summary response
--help,-h                       - flag to print help message (not finished)
--extract,-e                    - flag to extract curves
--debug debug_file file_name    - file to write debug information to
--title list                    - comma separated list of titles to filter by
--subtitle list                 - comma separated list of subtitles to filter by
--label list                    - comma separated list of labels to filter by
--type list                     - comma separated list of types to filter by
--subcase-id list               - comma separated list of subcase_ids to filter by
--entity-id list                - comma separated list of entity_ids to filter by
--entity-type-id list           - comma separated list of entity_type_ids to filter by
--entity-type list              - comma separated  list of entity_types to filter by
--curve-type list               - comma separated list of curve_types to filter by
    (xvel, yvel, zvel, Rxvel, Ryvel, Rzvel, xphase, yphase, zphase, Rxphase, Ryphase, Rzphase, magnitude, phase)
--magnitude-phase str           - true|false
--setw n                        - number of spaces to indent the output (0 or not setting this command at all is no indent)
--csv file_name                 - csv file to write the curve to
--eigen                         - flag to use eigen value and mode instead of subcase id

The input file information will overwrite the manual flags
If --output is not true, results are printed to std out

time_history

extractor -t time_history

positional arguments, these are the 4 possibilities:
extractor -t time_history file_name -s
extractor -t time_history file_name -a
extractor -t time_history file_name -cs parameter_spec
extractor -t time_history file_name -c parameter_spec

-v can be added to the end of any of these commands for verbose output

d3plot_writer

extractor -t d3plot_writer

--help,-h                   - help message
--file,-f file_name         - input file name
--outdir,-o dir_name        - directory to wirte output to
--prefix,-p str             - prefix for the output file names
--debug,-d                  - flag to output debug info to stdout
--plastic-strain            - flag to keep plastic strain info
--stress-components         - flag to keep stress componenets info (von-mises)
--shell-thickness           - flag to keep shell thickness info
--shell-force-resultants    - flag to keep shell force resultants info
--velocity                  - flag to keep velocity info
--acceleration              - flag to keep acceleration info
--temperature               - flag to keep temperature info
--states list               - comma separated list of states to use
--num-states n              - splits the states evenly into n states
--history-var n             - max number of history vars to keep (eg: to keep 7, the first 6 must also be kepth)
--setw n                    - number of spaces to indent the output (0 or not setting this command at all is no indent)

keyword

extractor -t keyword

--file,-f file_name       - keyword file to extract from
--output,-o file_name     - file to write the output to
--help,-h                 - help message
--summary,-s              - flag to write out summary
--debug,-d                - flag to output debug info to stdout
--setw n                  - number of spaces to indent the output (0 or not setting this command at all is no indent)
--shade-factor n          - factor to multiply each color component by to change the shade (between 0 and 1, 0 is darkest and 1 is brightest, 1 is default)
--keyword-writer list     - will write out a new keyword with keywords specified in argument. ex: --keyword-writer "keyword, include, element_shell, end"
--js3d                    - flag to output js3d to file specified in --output
--parts list              - list of part ids to include in the js3d ex: --parts "1,2,3,4" if not specified it will include all parts
--group-file file_name    - group file to read and create js3d files for each group. file_name will be keyword_groupname.js3d

dic

extractor -t dic

--file,-f file_name      - d3plot file name
--output,-o file_name    - js3d output file name
--states list            - comma separated list of states to use, length must be the same as number of dic files
--bound-box-scale n      - default is 1
--prefix str             - default is 'test-', this is used to detect dic files starting with prefix str
--point-increment n      - default 1, gets every other n values from dic data
--rotatez n              - default is 0, rotates the dic data by n deg before finding translation value
--top-n-percent n        - if not specified, there is no translation detection
--csv-file csv_name      - used to match dic time with simulation time
--time-scale n           - factor to multiply by the dic time when matching with simulation time
--summary                - flag to output summary json, will not create output if this option is used
--dic-file file_name     - use this dic file instead of detecting all the files (used with states_list as one file, ex: --dic_file test-100.csv --states 100)

Dic data with state_time csv specifying dic file name (last dic_file)
extractor -t dic -o error_bound_scale.js3d.zip -f d3plot --rotatez 90 --point-increment 4 --top-n-percent 1 --dic-file test-0867_0.csv --csv-file state_time_disp.csv --time-scale .2

Dic data specifying the states that match up with the dic files
extractor -t dic -o bound_box_multistate.js3d -f d3plot --rotatez 90 --point-increment 20 --states 1,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89 --top-n 1 --summary

Dic data with state_time csv detecting all files and referencing the state_time csv
extractor -t dic -o time_match.js3d.zip -f d3plot --rotatez 90 --point-increment 4 --top-n-percent 1 --csv-file state_time_disp.csv --time-scale .2
This results in a states array of [1, 74, 75, 75, 76, 77, 78, 79, 79, 80, 81, 82, 83, 83, 84, 85, 86, 87, 87] which seems to have some weird results that I think is because some states are repeated so --csv-file option shouldn't be used with multi states

bms

extractor -t bms

--file,f file_name     - name of bms file
--json,o file_name     - name for json output
--summary,s            - flag to output a summary
--debug,d              - flag to output debug info
--point-increment n    - reads every other n value from the file
--setw n               - number of spaces to indent the output (0 or not setting this command at all is no indent)
--csv str              - for each yname, write a csv file as xname_vs_yname_str - one curve per csv file
--x-name str           -  name of the column for the x values
--y-names list         - comma separated list of names of the columns for the y values, will put all curves in one group unless using colon (see below)
--rsp-per-file n       - number of responses per file
--x-limit n            - parameter used to skip points based on x interval
--x-limit-factor n     - parameter used to skip points based on x interval factor

to use the no-repeating option:
--rm-repeating      -flag to skip repeating or points within the error range
--error-factor n    -default of 0 which means it will only skip points that are exactly the  as the previous point, the range is last added yval +- (ymax-ymin)*error

to use the rdp algorithm:
--rdp               -flag to use Ramer-Douglas-Peucker algorithm
--error-factor n    - the limit for the perpendicular distance between 2 points and the perpendicular distance between those two end points and all points in between

to have multiple curve groups, names are comma separated, groups are colon separated:
--y-names 'group1_name1,group1_name2:group2_name1,group2_name2...'