4.22. 3Dtimon to Shell

This option enables transferring orientation data from the SMC modeling software 3DTimon for short and long fiber reinforced composites onto shell meshes for further structural analysis. This option is available for solid source meshes only.

Several options are available to handle short fiber reinforced composite materials with the LS-DYNA application. The Envyo application supports *MAT_ANISOTROPIC_ELASTIC_PLASTIC (*MAT_157) and output of *ELEMENT_SHELL_COMPOSITE cards for the use of other arbitrary orthotropic material models within the LS-DYNA application. Support for *MAT_4A_MICROMEC (*MAT_215) is also available.

For more information about the handling of short fiber reinforced materials with *MAT_157, see [11], [16], [15], [10]. For more details on *MAT_215, see [21].

4.22.1. Main Mapping Command

ENVYO = 3DTIMON-SHELL

4.22.2. Input and Output Meshes

SourceFile = STRINGDefine the name and, if needed, the path of the source file. This must be the Moldex3D mesh, translated into LS-DYNA format.

SourceFileFormat = LS−DYNA

3DTIMON

Provide information about the file format of the source file. The only supported mesh files are LS-DYNA and 3DTimon.
TargetFile = STRINGDefine the name and, if needed, the path of the target file. This must be an LS-DYNA mesh. If source and target file name 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.
OrientationFile = STRING3DTimon - bou files containing the fiber orientation tensor are considered.
TransformedMeshFile = STRINGSpecify the file name where the transformed mesh is written. This option is only for the transformation postprocessing. For additional details, refer to the Transformation Options section below.

4.22.3. Target Part IDs and Source Part IDs

NumTargetPids = INT

Define the number of target mesh parts 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 source mesh parts 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.22.4. Transformation Options

TRANSFORMATION = YES

NO

Turn the transformation option on or off.

TransformBack = YES

NO

Activates or deactivates backward transformation.

WriteTransformedMesh = YES

NO

Flag to enable the transformed mesh output used for mapping. This also 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 specifies the desired transformation option.
NodalPair#i = INT INTDefine nodal pairs to initialize mesh alignment for the ICP algorithm. This definition supports up to ten nodal pairs, and a minimum of three nodal pairs must be defined. 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, and each nodal pair must be 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 to convert the unit systems:

ChangeUnitSystem = YES

NO

Activates or deactivates 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.22.5. Mapping Options

ALGORITHM = ClosestPointThe only available option is ClosestPoint. Values are mapped to the nearest node, integration point, or element center.

Search_Radius = SrcEleLen

TarEleLen

DOUBLE

Specifies the search radius for the mapping algorithm. SrcEleLen is the default, which sets the radius to the average element size of the source mesh. Alternatively, use TarEleLen to apply the average element size of the target mesh, or provide a positive DOUBLE value to define a custom radius.
Scale_SearchRadius = DOUBLECoefficient to scale search buckets in bucket search algorithm.
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 shell elements.

4 - Fully integrated shell elements.

This option is formerly known as NumberOfTARInPlaneIPs.

NTHICK = INTDefine the number of through-thickness integration points (IPs). The number of through-thickness IPs must match the number of fibers being mapped, the number of source shell element stacks, and the number of through-thickness IPs in the source mesh. Reduce the number of through-thickness IPs by using the ThroughThicknessAveraging option. See also Figure 4.3: Number of stacks, integration points and fiber IDs for *MAT 249 or note 1. This option is formerly known as NumberOfTARThroughThicknessIPs.

IntegrationRule = Gauss

Lobatto

Autoform

Moldflow

Eq_Distr

Define the through thickness integration rule of the mapping result. This option directly affects the positions of the through thickness integration points on the target mesh.

Note:  When using the MapMainDir=YES functionality, *ELEMENT_SHELL_COMPOSITE keyword cards are created. The chosen integration point thickness is interpreted as weighting-factors in the LS-DYNA application. Regardless of chosen thickness, neither Gauss nor Lobatto integration rules are reproduced using this keyword. It is best practice to use an equal distribution of the integration points with IntegrationRule=Eq Distr. Integration points are assigned to the layer thickness mid-point defined in either *PART - or *ELEMENT_SHELL_COMPOSITE. If Gauss or Lobatto is set as the integration rule and MapMainDir is set to YES, the weights calculated from the Legendre polynomial are then used to calculate the integration point positions and corresponding thicknesses. As a result, the real relative integration point position is not at ±1 (as an example for Lobatto). Otherwise, this leads to a zero thickness at the integration point, following the *ELEMENT_SHELL_COMPOSITE definition. This does not affect the integration point positions calculated when using *INITIAL_STRESS_SHELL output for *MAT_157 or *MAT_215.


4.22.5.1. *Element_Shell_Beta Output

Instead of writing *ELEMENT_SHELL_COMPOSITE, you have the option to generate the *ELEMENT_SHELL_BETA output. In this case, you only get one initial material orientation which the application assumes as consistent throughout the thickness during the simulation. You must provide similar input information as the COMPOSITE option output. SHELL_OPTION needs different information, and you must provide information about how to determine the BETA angle. Otherwise, the mapping procedure is similar to the *ELEMENT_SHELL_COMPOSITE option, but the postprocessing prior to the output of the mapped orientation angles is handled differently. Thicknesses are written to the nodes within the *ELEMENT_SHELL_BETA card.

4.22.5.1.1. Specific Options
NPLANE = INT

1 - Reduced integrated shell elements.

4 - Fully integrated shell elements.

NTHICK = INT

Number of through-thickness integration points in the target mesh.

If INT is an even number and SCALARINT is set to CENTER IP, the two integration points closest to the mid-surface are averaged to determine the BETA angle for *ELEMENT_SHELL_BETA output.

If INT is an odd number and SCALARINT is set to CENTER IP, the Envyo application uses the mid-point as BETA for output.

IntegrationRule = Gauss

Lobatto

Autoform

Moldflow

Eq_Distr

Define the through thickness integration rule of the mapping result. This option directly affects the positions of the through thickness integration points on the target mesh.
MapStress = NODefine if *INITIAL_STRESS_SHELL cards are written. For the *ELEMENT_SHELL_COMPOSITE option, this flag must be set to NO.

Thck_Avg_Opt = Ele Avg

Nodal Avg

Thickness averaging option. When using *ELEMENT_SHELL_THICKNESS, nodes may hold different thickness information, depending on their parent element. Components with ribs are more likely to be affected by this. When calculating the through-thickness integration points, the Envyo application defaults to using the nodal thicknesses stored on the element nodes, and uses shape functions to interpolate the resulting thicknesses at the in-plane integration points for accurate calculations. The Thck_Avg_Opt=Nodal Avg option collects all thicknesses stored on one node from its attached elements, then averages these thicknesses, and interpolates them to the in-plane integration points using the shape functions.

MapMainDir = YESActivates the mapping of the main directions onto *ELEMENT_SHELL_COMPOSITE cards.
TargetThickness = DOUBLEDefine the thickness of the target part. If a SectionFile is included to the source mesh, the application ignores this value. Do not use this option if target mesh already has elements with thickness value.

SCALARINT = AVG

Center_IP

Define the interpolation method for the transferred fiber orientation angles derived from mapping the orientation tensors. AVG calculates the mean of all the fiber directions assigend to the intergation points through the mapping process. CENTER IP takes the mid-surface integration point information only, or calculates the average of the orientation from the two integration points closest to the mid-surface (see also NTHICK).

Shell_Option = Beta

Activates the output of *ELEMENT_SHELL_BETA cards.

Stress, strain, and thickness mapping are available for 3DTIMON-SHELL mapping. MapStress must be activated for the *INITIAL_STRESS_SHELL output option. To add thickness mapping, you must define a TargetThickness. MapMainDir activates the output of *ELEMENT_SHELL_COMPOSITE keywords carrying the main fiber direction. If special homogenization is necessary, TargetMaterialModel can be either *MAT_157 or *MAT_215.

INN = INT

This flag is similar to the invariant node numbering flag in the LS-DYNA application provided in the *CONTROL_ACCURACY card, see [19]. To properly calculate orientations with respect to the element coordinate system, the Envyo program needs information about how the LS-DYNA applications calculates the element coordinate system. The default is similar to LS-DYNA application’s default: Off.

MapStress = YES

NO

Activates stress mapping.

MapThickness = YES

NO

Activates thickness mapping.

Thck_Avg_Opt = Ele Avg

Nodal Avg

Thickness averaging option. When using *ELEMENT_SHELL_THICKNESS, nodes may hold different thickness information, depending on their parent element. Components with ribs are likely to be affected. In calculating the through-thickness integration points, the Envyo application defaults to using the nodal thicknesses stored on the element nodes, and interpolates the resulting thicknesses at the in-plane integration point(s) using shape functions. This allows for the correct calculation of the local through-thickness integration points. Thck_Avg_Opt=Nodal Avg collects all thicknesses stored on one node from its attached elements, average these thicknesses, and then interpolates them to the in-plane integration points using the shape functions.

MapMainDir = YES/NOOnly main orientation is transferred. Output is *ELEMENT_SHELL_COMPOSITE.

OUTPUT_OPTION = INITIAL STRESS ONLY

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

TargetMaterialModel = 157

215

If not initializing with *ELEMENT_SHELL_COMPOSITE, provide the target material model used in the subsequent analysis. Options are 157 or 215, referring to respective material model IDs in LS-DYNA application’s material model manual [20].

HISV_HANDLING = YES/NO

CLEAR

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

4.22.5.2. *Mat_Anisotropic_Elastic_Plastic (*MAT_157) Output

For *MAT_157, several additional mapping input data are required to intitialize the orientation and more components at the integration point level. Additional input parameters are dependent on the chosen IHIS option.

4.22.5.2.1. IHIS Options
IHIS = INTFlag that defines the material parameter which is written onto *INITIAL_STRESS_SOLID cards for *MAT_157, according to [20]. The following values are supported:
IHIS = 1Q-values are written on the first two history variables. No further input must be defined with this option.
IHIS = 3Q-values are written on the first two history variables, tensor components Cij are written on history variables #7 - #27.
IHIS = 11Q-values are written on the first two history variables, tensor components Cij are written on history variables #7 - #27. Table IDs for strain rate dependent plasticity are defined on history variable #28.

Important:  If IHIS > 1, define the following variables:


HomogenizationMethod = Halpin − Tsai

Tandon − Weng

Voigt

Kukuri

Mori − Tanaka 1

Mori − Tanaka 2

Mori − Tanaka 3

Define the homogenization method used to calculate the unidirectional stiffness matrix. For further information about these methods, see [10] or [16].

ClosureApproximation = Linear

Quadratic

Hybrid A

Hybrid B

ORF

ORS

Define the closure approximation method used to calculate the 4th-order orientation tensor from the 2nd-order orientation tensor given by Moldflow. For further information about these methods, see [10] or [16]. ORF calls the orthotropic fitted closure approximation proposed by [12], distinguishing between different fiber interaction coefficients based on the equation provided in [7]. ORS refers to the orthotropic smooth closure approximation.

The following elastic constants must be defined:

E11F = DOUBLEFiber Young's modulus in the main direction.
E22F = DOUBLEFiber Young’s modulus in the thickness direction.
RHOF = DOUBLEFiber density.
PRBAF = DOUBLEFiber in-plane Poisson’s ratio.
PRCBF = DOUBLEFiber out-of-plane Poisson’s ratio.
G12F = DOUBLEFiber shear modulus.
EM = DOUBLEMatrix Young’s modulus.
RHOM = DOUBLEMatrix density.
PRM = DOUBLEMatrix Poisson’s ratio.
AspectRatio = DOUBLEFiber aspect ratio (length to thickness).
FiberVolumeFraction = DOUBLEFiber volume fraction in precent.

InclusionShape = Ellipsoidal

Spherical

Needle

Disc

Shape of the inclusions.

If IHIS > 3, you must define several direction-dependent curve files, belonging to different strain rates so that the strain-rate and direction-dependent plasticity is defined. The following input can be given:

4.22.5.2.2. Curve Input
NumberOfCurveFiles = INTDefine the number of curve files which are read.
CurveFileName#i = STRINGDefine the name and, if needed, the path of the curve files. This card is written NumberOfCurveFiles times.
4.22.5.2.3. Strain Rate and Direction Information
NumberOfDirections = INTDefine the number of directions to which the curve files belong to. A recommended value for short fiber reinforced plastic materials is 3.
Direction#i = DOUBLEDefine angles compared to the flow direction which are used to generate the plasticity curves. Typical angles would be 0◦, 45◦, and 90◦. This card must be written NumberOfDirections times.
NumberOfStrainRates = INTDefine the number of strain rates to which the curve files belong to.
StrainRate#i = DOUBLEDefine the strain rates that are considered by the defined curves. This card has to be written NumberOfStrainRate times.
StrainRate#iDirection#j = INTDefine the curve IDs that belong to the respective strain-rate and direction combination. This card has to be written NumberOfDirections x NumberOfStrainRates times.
4.22.5.2.4. 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, and stresses. Variables are declared by 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.
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 are written to the final result file due to MAX_NUM_HISV.

4.22.5.3. Fiber Orientation Tensor Dependent Material Model Handling

The Envyo application contains two methods to assign material ID (or material properties) according to the found source fiber orientation tensor during the mapping process.

Method 1: Using *ELEMENT_SHELL_COMPOSITE (_LONG)

Since each through thickness IP of composite elements can have a different material ID, you can define a list of fiber orientation tensors and material ID pairs to assign materials IDs for matching tensors. The following options must be defined:

NumOriTensorMIDs = INT

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

OriTensorMID#i = DOUBLE DOUBLE DOUBLE;INT

Define as many fiber orientation tensor and material ID pairs as given in NumOriTensorMIDs. Three double values represent a11, a22, and a33 orientations of the tensor, respectively. The integer value seperated by a semicolon represents the assigned material ID for this orientation tensor.

MapMainDir= YES

This option must be defined. The output is *ELEMENT_SHELL_COMPOSITE. Fiber orientations is represented by BETA angles for each through thickness IP.

Method 2: Using *MAT 157 IHIS Option

Independent from the previous options of *MAT_157, you can define IHIS=7 or IHIS=15 to activate fiber orientation dependent mapping of material properties. *MAT_157 cards have to be defined in target mesh, and they can also be added to the target mesh as an include using *INCLUDE keyword. Most importantly, the direction components q1 & q2 and material stiffnes parameters Cij are computed by the Envyo application. Therefore, all above-mentioned parameters for IHIS=3 option must be defined. R00, R45, and R90 values for IHIS=7 and an additional LCSS value for IHIS=15 is taken from included *MAT_157 cards. The fiber orientation tensors of material cards have to be defined as a material card title using the following format:

EnvyoOrient:DOUBLE;DOUBLE;DOUBLE

which double values represent a11, a22, and a33 orientations of the tensor. The material ID is taken from the material model.

This method can be enhanced to define through-thickness IPs' material IDs using *ELEMENT_SHELL_COMPOSITE keyword. The following options must be defined in addition to above-mentioned options:

Shell_Option = Composite

Activates *ELEMENT_SHELL_COMPOSITE output routine.

IntegrationRule = Eq Distr

Equally distributed through thickness IP positions are used. A detailed explanation is provided under IntegrationRule option written above.

Note that the first method always overwrites the second one. To use the enhancements of the second method, MapMainDir option must be either set to NO, or not defined at all.

4.22.5.4. *Mat_4A_Micromec (*MAT_215) Output

No further information is needed when using *MAT_215 on the target side.