4.5. Stacked Shell to Solid

This option enables the transfer of stresses and fiber orientations from certain material models onto a solid mesh. Thereby, *ELEMENT_SOLID_ORTHO elements are generated in order to consider the material orientation. The material model which is extensively tested is an extension of the draping material model *MAT_249 and is called *MAT_REINFORCED_THERMOPLASTIC_UDFIBER. Further information about the material model and the advantage of the mapping process for springback analysis can be found in [5], [14], and [20].

4.5.1. Main Mapping Command

ENVYO = STACKED_SHELL-SOLID

4.5.2. Input and Output Meshes

SourceFile = STRINGDefine the name and, if needed, the path of the source file (usually a *.dynain file).
TargetFile = STRINGDefine the name and, if needed, the path of the target file. The target file must be an LS-DYNA application mesh.
MappingResult = STRINGDefine the result file name. The mapping result is written into this newly generated file.
OrientationFile = HISVTo enable the transfer of orientations, define this flag. It informs the program that the orientation data is stored within the history variables (HISV).
TransformedMeshFile = STRINGSpecify the file name where the transformed mesh is written. This option is intended solely for postprocessing of the transformation. For additional details, refer to the Transformation Options section below.
AddEleHISVFile# = STRING A file name carrying element histories in an additional file. Multiple of these files can be defined. The first 10 digits of the lines must hold the element ID, the following 10 digits carry some arbitray value, interpreted as an additional history variable on element level.
LookupTable# = STRINGA file name carrying lookup tables. Values within one line are separated by a space. As described in the Equation Parser section, the Envyo application enables history variable lookup based on these looktables provided by you. Following the lookup table command, you must define the columns that are considered for variable lookup. See the example in the Equation Parser section.

The following are available options for source and result file formats:

SourceFileFormat = LS-DYNA,

ESI-PC,

Nastran,

HDF5,

ESI-HDF5,

GCODE,

ABAQUS,

STEP,

CSV

The source file format. The preferred format is LS-DYNA.
TargetFileFormat = LS-DYNAThe target file format. The only format available is LS-DYNA.
ResultFileFormat = LS-DYNAThe result file format. The only format available is LS-DYNA.

4.5.3. Target Part IDs and Source Part IDs

NumTargetPids = INT

Define the number of parts in the target mesh which are considered within the mapping. This option must be followed by TargetPid#i definitions.

TargetPid#i = INTDefine as many part IDs as given in NumTargetPids. These parts are considered for the mapping.
NumSourcePIDs = INT

Define the number of parts in the source mesh which are considered within the mapping. This option must be followed by SourcePID#i definitions.

SourcePID#i = INTDefine as many part IDs as given in NumSourcePIDs. These parts are considered for the mapping.

Note:  The options above specifically narrow down the scope of the mapping procedure to defined-part IDs. Other parts are ignored on both the source and target meshes.


4.5.4. Transformation Options

TRANSFORMATION = YES

NO

Turns the transformation option on or off.

WriteTransformedMesh = YES

NO

Flag to enable output of the transformed mesh used for mapping. This enables verifying the success of the transformation. If set to YES, a TransformedMeshFile must be specified (see Input and Output Meshes).

There are three available methods for performing mesh transformation:

  • TRAFO_OPTION is required:

    • Iterative Closest Point (ICP)

    • Four-Points-Congruent Sets (4PCS)

  • TRAFO_OPTION is not required:

    • User-defined translation and rotation

The 4PCS method must be used with caution, as it is fully automatic and may not accurately transform stress tensors and fiber orientations between different coordinate systems. The ICP algorithm is the recommended approach.

The user-defined translation and rotation options are listed underneath TRAFO_OPTION.


Note:  Transformation options are used to transform the source mesh.


TRAFO_OPTION = 4PCS

ICP

Flag that enables specification of the desired transformation option.
NodalPair#i = INT INTDefine nodal pairs to initialize mesh alignment for the ICP algorithm. You may specify up to ten nodal pairs, with a minimum of three required. In each pair, the first integer represents a node ID in the source mesh, and the second corresponds to a node ID in the target mesh. Input values must be space-separated, with each nodal pair provided on a separate line.
MAX_NUM_ITER = INTMaximum number of iterations to be performed by the 4PCS algorithm.
GLOBAL_ERR = DOUBLEGlobal error measure to accept transformation as best fit 4PCS algorithm.
MATCHING_POINT_DIST = DOUBLE

Maximum distance between points so that they are accepted as matching (4PCS).

PERCENTAGE_OF_MATCHING_POINTS = DOUBLEPercentage of matching points to accept the transformation (4PCS).

Additionally, a custom sequence of user-defined transformations can be applied. These transformations are executed in the order in which they are specified and multiple transformations may be defined:

RotateSRC = DOUBLE;X

DOUBLE;Y

DOUBLE;Z

DOUBLE; DOUBLE DOUBLE DOUBLE

The source mesh rotates by a specified angle (first value, in degrees) around a defined axis. Predefined axes include X, Y, and Z. Alternatively, a custom axis can be specified by providing three space-separated floating-point values following a semicolon (; x y z).
MoveSRC = DOUBLE DOUBLE DOUBLEThe source mesh moves along the user-defined vector (x y z).
ScaleSRC = DOUBLEThe source mesh scales around the origin using the defined scale factor.

In addition to the transformation options, there are options for converting the unit system:

ChangeUnitSystem = YES

NO

Activates or deactives unit system conversion.

SourceUnitSystem = kg - m - s

ton - mm - s

kg - mm - ms

g - mm - ms

lb - in - s

If the unit system conversion is activated, provide information about the source unit system.

TargetUnitSystem = kg - m - s

ton - mm - s

kg - mm - ms

g - mm - ms

lb - in - s

If the unit system conversion is activated, provide information about the target unit system.

4.5.5. Mapping Options

ALGORITHM = ClosestPoint

ElementSizeSearchRadius

The ClosestPoint option is the most commonly used feature. It accounts for most of the mapping purposes being targeted with the Envyo application. Beginning from the target mesh, the next element or integration point is identified and its data is transferred onto the target mesh.

The ElementSizeSearchRadius option has been implemented in order to map results from mesoscale process simulations using shell elements onto the target mesh. Therefore, the target mesh element size is used as a search radius, whereas the source mesh elements is projected onto the target mesh along the source meshes normal, and a check is performed to see if the intersection is within the target element. The element size can be scaled using Scale_SearchRadius - see below.

Search_Radius = SrcEleLen

TarEleLen

DOUBLE

Search radius declaration for mapping algorithm. SrcEleLen is default, which uses average source mesh element size as the search radius. Average target mesh element size can be used by defining either TarEleLen or a positive DOUBLE value.
Scale_SearchRadius = DOUBLE

Coefficient to scale search radius. The default value is 1.0.

MapStress = YES

NO

Define if stresses have to be transferred or not.

MapStrain = YES

NO

Define if strains have to be transferred or not.
NumFibers = INTFor *MAT 249 UDFIBER, this value must be equal to one.
FiberID#i = INTDefine as many fiber IDs as given in NumFibers. For *MAT 249 UDFIBER, this is only one integer.
ETYP = INT

1 - Reduced integrated solid elements.

2 - Fully integrated solid elements.

SourceMaterialModel = 34

234

235

249

2491

Define the material ID corresponding to the numbering in the LS-DYNA material manual. For the mapping of fiber orientations from *MAT 249 UDFIBER, the value is 2491.
SOLID_OPTION = ORTHOTells the Envyo application to generate *ELEMENT SOLID ORTHO elements from the mapped orientations.
TargetOption = OpenFOAMWith this option, the Envyo application handles the data properly to link LS-DYNA mesh to OpenFOAM. INN=2 must be declared to use this option.
INN = INTThis flag is similar to the invariant node numbering flag in LS-DYNA provided in the *CONTROL_ACCURACY card, see [19]. To properly calculate orientations with respect to the element coordinate system, the program needs information about how the LS-DYNA application calculates the element coordinate system. The default is similar to the default in the LS-DYNA application: Off. TargetOption=OpenFOAM must be declared to use this option.

ConsiderStacks = YES

NO

Define if stacking sequence must be considered.
SORT = BUCKETUsing bucket sort is strongly recommended, as it provides a substantial performance improvement for the search algorithm.
REPEAT = YESEnable this option to ensure that all elements and integration points receive mapped data. When there is a significant difference in element sizes between the source and target meshes, the default bucket refinement may be insufficient to cover all points, sometimes by design. In such cases, this flag must be set to guarantee complete data coverage.

HISV_HANDLING = YES

NO

CLEAR

Enables you to move and modify history variables in a user-defined way. Regarding the meaning of histories, refer to [20], [4]. If CLEAR, all history variables are removed before generating the result file. If YES, define as many history variables as must be modified (see Equation Parser).
MAX_NUM_HISV = INT Define a new maximum number of history variables. This is an easy way to get rid of unwanted histories that are not useful to the new model, but also enables extending the amount of histories being output. If a history variable is being moved to a position which is higher then the actual number of history variables in the input deck, the number of histories are extended automatically.

4.5.6. Equation Parser

The Envyo application implements an equation parser based on the Shunting yard algorithm and is available as MIT license [6]. his equation parser has been 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#iHistory variable at position i.
&EPSEffective plastic strain (the last entry in *INITIAL STRESS SHELL which may have a different meaning than eff. plast. strain).
&ELELENGTHElement length of the current element.
&SIG_IJComponents of the second order stress tensor.
&SIG_INITEnables initializing a specific stress value that refers to all stress components.
&ADD ELE HISV#iElement history variable from file i is used.
&LookupTable#1Lookup table from file i is used.
expExponent. An alternative input would be e**.

Example of History Variable Manipulation

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:

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. In addition, two lookup table files are read. Column one, two, and three are considered for both of them. Those numbers can be different, and it is also possible to have more than just 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, using 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. Only eight history variables are written to the final result file due to MAX_NUM_HISV.