The Envyo application implements an equation parser based on the Shunting yard algorithm and is available as MIT license [6]. This equation parser is modified to work with common variables in the LS-DYNA application such as histories, eff. plast. strains, and stresses. Variables are declared, using the & symbol and commands are executed in the order of input. The following variables are available:
| &HISV#i | History variable at position i. |
| &EPS | Effective plastic strain (the last entry in *INITIAL STRESS SHELL which may have a different meaning than eff. plast. strain). |
| &ELELENGTH | Element length of the current element. |
| &SIG_IJ | Components of the second order stress tensor. |
| &SIG_INIT | Enables initializing a specific stress value that refers to all stress components. |
| &ADD ELE HISV#i | Element history variable from file i is used. |
| &LookupTable#i | Lookup table from file i is used. |
| exp | Exponent. An alternative input is e**. |
The following example illustrates the usage of the equation parser in combination with the lookup tables. The commands following the additional history and lookup table definition are executed in the order of input.
Example of History Variable Manipulation
AddEleHISVFile#1 = Results A.dyn AddEleHISVFile#2 = Results B.dyn LookupTable#1 = data A.txt,&COL#1,&COL#2,&COL#3 LookupTable#2 = data B.txt,&COL#1,&COL#2,&COL#3 &HISV#3 = &ADDELE HISV#2 &HISV#2 = &ADDELE HISV#1 &HISV#4 = abs(&HISV#3-&HISV#2)*0.000467354 &EPS = &LookupTable#1,linearInterpolation,&HISV#4,&ELELENGTH,&COL#3 &HISV#6 = &LookupTable#2,nextNeighbour,&EPS,&ELELENGTH,&COL#3 &HISV#8 = &HISV#2 &HISV#9 = &ELELENGTH MAX_NUM_HISV = 8
Two additional element history files are loaded into the Envyo application, and are stored internally. Additionally, two lookup table files are read. Columns one, two, and three are considered for both files. The column numbers can be different, and the lookup tables may have more than three columns. After reading the data, the following commands are executed:
Additional element history variable from file 2 is stored as history variable #3. Additional element history variable from file 1 is stored as history variable #2. The value of history variable #4 is calculated by multiplying the absolute value of history #3-#2 with a scale factor.
To get information about the eff. plastic strain, lookup table #1 is used. If values are inbetween two values provided within one of the columns, linear interpolation is used. In this case, history variable #4 is compared to values stored in column #1. Following that, Envyo takes the element length of each element, and compares it with the values stored in column #2 of lookup table #1. The final result is the value provided in column #3.
The value of history variable #6 is derived in a comparable way, considering the next neighbor instead of performing a linear interpolation between the values. The first input is the resulting eff. plastic strain from the previous step. Again, results are provided in column #3.
Following these operations, history variable #8 is assigned the value at history variable #2, and the element length is stored at history variable #9. Nevertheless, only eight history variables are written to the final result file due to MAX_NUM_HISV.