4.23. Theseus to Shell

This mapping option enables calculating and transferring hardening parameters based on the Johnson-Mehl-Avrami-Kolmogorow (JMAK) equation from a source file containing temperature-time histories to a target mesh. Initially for HDF5 based THESEUS simulation result meshes, temperature-time histories are now available in different file formats. For further information, see [13] and [18].

4.23.1. Main Mapping Command

ENVYO = THESEUS-SHELL

4.23.2. Input and Output Meshes

SourceFile = STRINGDefine the name and, if needed, the path of the source file. This must be the mesh, translated into LS-DYNA format.
TargetFile = STRINGDefine the name and, if needed, the path of the target file. This must be an LS-DYNA mesh. If the source and target file names are identical, mapping routines are skipped and the hardening parameter is initialized directly.
MappingResult = STRINGDefine the result file name. The mapping result is written into this newly generated file.

ResultFileFormat = LS-DYNA

LSDA

If temperature mapping is active, there is the option to have the output as a *.lsda file using tprint to initialize temperatures using *INCLUDE_THERMAL_BINOUT.

TransformedMeshFile = STRINGDefine the name of the transformed mesh file. The transformation result is written into this newly generated file.
Add SRCPartSetFile = STRING

Define an additional file containing part sets which is assigned a specific set of hardening parameters (see JMAK Parameters). This can also be used for specific part set mapping.

Add TARPartSetFile = STRINGDefine an additional file containing part sets which are only considered during the target mesh mapping.

SourceFileFormat = LS-DYNA

HDF5

Give information about the source file format. LS-DYNA meshes and the THESEUS native HDF5 format are available options.
NumSourceFiles = INTAfter several simulations where the results add up, use this option to define multiple source files.
SourceFile#i = STRINGDefine as many source file names as NumSourceFiles.
TemperatureFile = STRINGDefine the file name that holds the temperature-time curves. You must define this if they are not included in the SourceFile.

TemperatureFileFormat = LSDA

CSV

The Envyo application supports *.lsda and *.csv based temperature-time result files.

4.23.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 = INTDefine 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.
TargetPSETID#i = INTDefine the number of part sets on the target mesh for mapping instead of defining individual part IDs. Part sets are either already included in the input file, or added with an additional Add TARPartSetFile.
SourcePSETID#i = INTDefine the number of part sets on the source mesh for mapping instead of individual part IDs. Part sets are either already included in the input file, or added with an additional Add SRCPartSetFile.

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.23.4. Transformation Options

TRANSFORMATION = YES

NO

Turns the transformation option on or off.

WriteTransformedMesh = YES

NO

Flag to enable output of the transformed mesh for mapping. This enables verifying the transformation success. 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 specifying the desired transformation option.
NodalPair#i = INT INTDefine nodal pairs to initialize mesh alignment for the ICP algorithm. You must specify a minimum of three nodal pairs, and this option supports up to ten nodal pairs. 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 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, there are options to apply a custom sequence of user-defined transformations. These transformations are executed in the order in which they are specified:

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.

4.23.5. Mapping Options

ALGORITHM = ClosestPointThe only available option is ClosestPoint. Values are mapped to the nearest node, integration point, or element center.
SORT = BUCKETUsing bucket sort is strongly recommended, as it substantially speeds-up 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.

If the target mesh does not contain any information regarding the integration rules being used, such as element formulation and through-thickness integration points, you must define them. The input is as follows:

NPLANE = INT

1 - Reduced integrated thick shell elements.

4 - Fully integrated thick shell elements.

NTHICK = INTNumber of through thickness integration points.

IntegrationRule = GAUSS

LOBATTO

AUTOFORM

MOLDFLOW

Options for different predefined through-thickness integration rules.

In theory, stress and strain mapping options are also available with the THESEUS-SHELL mapping option. You must activate MapStress to activate *INITIAL_STRESS_SHELL output. If stress or strain mapping are active, existing stresses and strains on the target side are overwritten.

MapStress = YES

NO

Activates stress mapping.

MapStrain = YES

NO

Activates strain mapping.

MapTemperature = YES

NO

Activates temperature mapping. Instead of using the JMAK parameters to calculate a hardening degree, temperature curves from THESEUS-HDF files are mapped directly onto the target mesh. If ResultFileFormat is LS-DYNA, an ASCII result file generates with *BOUNDARY_THERMAL_NODE and *DEFINE_CURVE cards included. If *.lsda is used as ResultFileFormat, a binary file containing tprint - information used with *INCLUDE_THERMAL_BINOUT is created.

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] and [4]. If CLEAR, all history variables are removed before generating the result file. If YES, define as many history variables to modify. See Equation Parser.

MAX_NUM_HISV = INT

Define a new maximum number of history variables. This is an easy way to remove unwanted histories that are useless for the new model, but also extends the histories being output. If a history variable is moved to a position which is higher than the actual number of history variables in the input deck, the number of histories are extended automatically.

OUTPUT_OPTION = INITIAL STRESS ONLY

Only *INITIAL_OPTION cards are written to the mapping result file. Nodes and elements are skipped.

4.23.6. JMAK Parameters

The following are JMAK parameters for the hardening calculation

JMAK Parameter#i = PSetID;t0;Q;n;Y0;R

Define the JMAK parameter in the order provided. The first value in the mapping command refers to a part set in the source mesh that is assigned with the respective parameters for calculating the hardening degree.

All parameters must be seperated by a semi-colon. If the same parameter set is assigned to all parts, use JMAK Parameter#i=ALL;t0;Q;n;Y0;R. This option also allows assigning some parameters to specific part sets, and the remaining parts use the parameters in the JMAK Parameter#i=ALL;... option.

Y POS = &HISV#i

Defines the history variable position i where the hardening degree is assigned to.

The JMAK equation is given by:

(4–12)

with:

(4–13)

where

  • T = the Temperature (in degrees C)

  • R = the gas constant

  • Y = the resulting hardening degree

  • Y0 = the initial hardening degree

  • t0, Q, and n can be determined by experiments

4.23.7. Equation Parser

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 LS-DYNA application variables such as histories, eff. plast. strains, stresses, and more. Variables are declared with 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 2nd order stress tensor.

&SIG_INIT

Enables initializing a specific stress value - refers to all stress components.

expExponent. An alternative input would be e**.

Example

The following example illustrates the usage of the equation parser. The commands following the additional history are executed in the order of input:

&HISV#4 = abs(&HISV#3-&HISV#2)*0.000467354 
&HISV#8 = &HISV#2 
&HISV#9 = &ELELENGTH
MAX_NUM_HISV = 8 

The value of history variable #4 is calculated using the absolute value of history #3 - #2, multiplied by a scale factor. 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 is written to the final result file due to MAX_NUM_HISV.