4.21. Moldex3D to Shell

This option enables the transfer of moldex orientation data for short and long fiber reinforced composites to shell meshes for further structural analysis. Support is provided separately for shell and solid target meshes. If needed, the Envyo application can be extended to consider both meshes on the target side.

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.21.1. Main Mapping Command

ENVYO = MOLDEX3D-SHELL

4.21.2. Input and Output Meshes

SourceFile = STRINGDefine the name and, if needed, the path of the source file. This should be the Moldex3D mesh, translated into LS-DYNA format.
TargetFile = STRINGDefine the name and, if needed, the path of the target file. This should be an LS-DYNA mesh. If source and target file name are identical, mapping routines are skipped and the hardening parameter is initialized directy.
MappingResult = STRINGDefine the result filename. The mapping result is written to this newly generated file.
OrientationFile = STRINGMoldex3D-o2d files containing the fiber orientation tensor are considered.
WeldlineFile = STRINGIf weldlines should be considered, the .nwd weldline-file that contains nodes and respective main angles can be defined here. With the MapWeldline flag, weldline consideration is activated and a different part is assigned to weldline elements. You can define corresponding material parameters for these parts.
TransformedMeshFile = STRINGSpecify the output filename for the transformed mesh. This option is intended solely for postprocessing of the transformation. For additional details, refer to the Transformation Options section below.

4.21.3. Target Part IDs and Source Part IDs

NumTargetPids = INT

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

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

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

SourcePID#i = INTDefine as many part IDs as specified 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.21.4. Transformation Options

TRANSFORMATION = YES

NO

Enable/disable the transformation option.

TransformBack = YES

NO

Activate/deactivate backward transformation.

WriteTransformedMesh = YES

NO

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

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 should 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 INT Define nodal pairs to initialize mesh alignment for the ICP algorithm. You can 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 should be space-delimited, with each nodal pair provided on a separate line.
MAX_NUM_ITER = INT Maximum number of iterations to be performed by the 4PCS algorithm.
GLOBAL_ERR = DOUBLE Global error measurement to accept transformation as best fit for the 4PCS algorithm.
MATCHING_POINT_DIST = DOUBLE

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

PERCENTAGE_OF_MATCHING_POINTS = DOUBLEPercentage of matching points for transformation acceptance (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 is rotated 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 is moved along the user-defined vector (x y z).
ScaleSRC = DOUBLEThe source mesh is scaled around the origin using the defined scale factor.

In addition to the transformation options, you can convert the unit systems:

ChangeUnitSystem = YES

NO

Activate/deactive unit system conversion.

SourceUnitSystem = kg - m - s

ton - mm - s

kg - mm - ms

g - mm - ms

lb - in - s

If 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 unit system conversion is activated, provide information about the target unit system.

4.21.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. By default, SrcEleLen is used, which sets the radius to the average element size of the source mesh. Alternatively, you can 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 the bucket search algorithm.
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.

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 was formerly known as NumberOfTARIn-PlaneIPs.

NTHICK = INTDefine the number of through-thickness integration points (IPs). Ensure the number of through-thickness IPs refers to the number of fibers being mapped, the number of source shell element stacks, and the number of through-thickness IPs in the source mesh. The number of through-thickness IPs can be reduced 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 was formerly known as NumberOf- TARThroughThicknessIPs.

IntegrationRule = Gauss

Lobatto

Autoform

Moldflow

Eq_Distr

Define the through-thickness integration rule for 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 will be created. Since neither Gauss nor Lobatto integration rules can be reproduced using this keyword, regardless of the chosen integration point thickness, which is interpreted as weighting-factors in the LS-DYNA application, it is recommended to use an equal distribution of the integration points, with IntegrationRule=Eq Distr. Integration points are assigend to the midpoint of the layer thickness defined in either *PART - or *ELEMENT_SHELL_COMPOSITE. When either Gauss or Lobatto is set as the integration rule together with MapMainDir=YES, the weights calculated from the Legendre polynomial are used to calculate the integration point positions and corresponding thicknesses. The real relative integration point position would not be at ±1 (with Lobatto, for example), since this would lead 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.21.5.1. *Element_Shell_Beta Output

Instead of writing *ELEMENT_SHELL_COMPOSITE, it is also possible to generate *ELEMENT_SHELL_BETA as output. In this case, you only specify a single initial material orientation, which is assumed to be constant through the thickness during the simulation. The input information you must provide is similar to the COMPOSITE option output. SHELL_OPTION requires different information and you must specify how the BETA angle should be determined. Otherwise, the mapping procedure is similar to the *ELEMENT_SHELL_COMPOSITE option, but postprocessing prior to output of the mapped orientation angles is handled differently. Thicknesses are written to the nodes within the *ELEMENT_SHELL_BETA card.

4.21.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 an even number is provided, and SCALARINT is set to CENTER IP and the two integration points closest to the mid-surface are averaged to determine the BETA angle for *ELEMENT_SHELL_BETA output.

If an odd number is provided, 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 for the mapping result. This option directly affects the positions of the through-thickness integration points on the target mesh.
MapStress = NODefine whether *INITIAL_STRESS_SHELL cards should be written. For the *ELEMENT_SHELL_COMPOSITE option, set this flag 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 the element to which they belong. This is especially criticial for components with ribs.

With the default setting (Ele Avg), the Envyo application calculates through-thickness integration points using the nodal thicknesses stored on the element nodes by interpolating the resulting thicknesses at the in-plane integration points via shape functions, allowing for the correct calculation of the local through-thickness integration points.

By choosing the Nodal Avg option, the application first collects all thicknesses stored on one node from its attached elements and averages these thicknesses. Interpolation to the in-plane integration points using shape functions is then performed.

MapMainDir = YESActivate the mapping of main directions to *ELEMENT_SHELL_COMPOSITE cards.
TargetThickness = DOUBLEDefine the thickness of the target part. If a SectionFile is included in the source mesh, this value is ignored. If the target mesh already has elements with thickness value, this option can again be ignored.

SCALARINT = AVG

CENTER_IP

Define the interpolation method for 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 = BetaActivates the output of *ELEMENT_SHELL_BETA cards.

Note:  Stress, strain, and thickness mapping are all available for MOLDEX3D-SHELL mapping. MapStress must be activated for the *INITIAL_STRESS_SHELL output option. Map-Weldline is optional. Thickness mapping is not available. Instead, you may 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 = INTThis 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 application calculates the element coordinate system. The default is Off, as is the case with the LS-DYNA application.

MapStress = YES

NO

Activate stress mapping.

MapThickness = YES

NO

Activate 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 the element to which they belong. This is especially criticial for components with ribs.

With the default setting (Ele Avg), the Envyo application calculates through-thickness integration points using the nodal thicknesses stored on the element nodes by interpolating the resulting thicknesses at the in-plane integration points via shape functions, allowing for the correct calculation of the local through-thickness integration points.

By choosing the Nodal Avg option, the application first collects all thicknesses stored on one node from its attached elements and averages these thicknesses. Interpolation to the in-plane integration points using shape functions is then performed.

MapWeldline = YES

NO

Activate detection of elements being assigned a WeldlinePID.
WeldlinePID = INTPart-ID assigned to elements within a WeldlineRadius.
WeldlineRADIUS = DOUBLEDefine the radius for the weldline elements. This option enables adjustment of the weldline radius so that the number of elements within the weldline zone can be distinguished and a weld line PID assigned. If this option is not defined, Search Radius and Scale_SearchRadius options are used to determine weldline zone.

MapMainDir = YES

NO

Only main orientation will be transferred. Output will be *ELEMENT_SHELL_COMPOSITE.
OUTPUT_OPTION = INITIAL STRESS ONLYOnly *INITIAL_OPTION cards will be written to the mapping result file. Nodes and elements are skipped.

TargetMaterialModel = 157

215

Specify which target material model is used in the subsequent analysis, if not initializing with *ELEMENT_SHELL_COMPOSITE. Options are 157 or 215 referring to respective material model IDs in LS-DYNA application’s material model manual [20].
4.21.5.1.2. *MAT_ANISOTROPIC_ELASTIC_PLASTIC (*MAT_157) Output (Standard Routine)

For *MAT_157, further mapping input data is required to enable initialization of orientation and further components at integration point level. Additional input parameters are dependent on the chosen IHIS - option.

4.21.5.1.2.1. IHIS Options
IHIS = INTFlag defining the material parameter written to *INITIAL_STRESS_SOLID cards for *MAT_157, according to [20]. The following values are supported:
IHIS = 1 - q-values are written to the first two history variables.
IHIS = 3 - q-values are written to the first two history variables, tensor components Cij are written on history variables #7 - #27.
IHIS = 11 - q-values are written to the first two history variables, tensor components Cij are written to history variables #7 - #27, table IDs for strain rate dependent plasticity are defined in history variable #28.

For IHIS = 1, no further input is required.

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 that is used to calculate the 4th-order orientation tensor from the 2nd-order orientation tensor given by Moldex3D. 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 [7]. ORS refers to the orthotropic smooth closure approximation.

The following elastic constants must be defined:

E11F = DOUBLE Fiber Young’s modulus in main direction.
E22F = DOUBLE Fiber Young’s modulus in thickness direction.
RHOF = DOUBLEFiber density.
PRBAF = DOUBLE Fiber in-plane Poisson’s ratio.
PRCBF = DOUBLEFiber out-of-plane Poisson’s ratio.
G12F = DOUBLE Fiber shear modulus.
EM = DOUBLE Matrix Young’s modulus.
RHOM = DOUBLEMatrix density.
PRM = DOUBLEMatrix Poisson’s ratio.
AspectRatio = DOUBLE Fiber aspect ratio (length/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, representing different strain rates, so that the strain-rate and direction-dependent plasticity can be defined. The following input can be supplied:

    4.21.5.1.2.2. Curve Input
    NumberOfCurveFiles = INTDefine the number of curve files to be read.
    CurveFileName#i = STRINGDefine the name and, if needed, path of the curve files. This card must be written NumberOfCurveFiles times.
    4.21.5.1.2.3. Strain Rate and Direction Information
    NumberOfDirections = INT Define the number of directions to which the curve files belong. The recommended value for short fiber reinforced plastic materials is 3.
    Direction#i = DOUBLE Define angles, with respect to the direction of flow, used to generate the plasticity curves. Typical angles are 0, 45, and 90 degrees. This card must be written NumberOfDirections times.
    NumberOfStrainRates = INT Define the number of strain rates to which the curve files belong.
    StrainRate#i = DOUBLE Define the strain rates that are considered by the defined curves. This card must be written NumberOf- StrainRates times.
    StrainRate#iDirection#j = INT Define the curve IDs that belong to the respective strain-rate/direction combination. This card must be written NumberOfDirections x NumberOfStrainRates times.
    4.21.5.1.2.4. Equation Parser and History Variable Handling (Only for IHIS=1 Option)

    HISV_HANDLING = YES

    NO

    CLEAR

    Enables you to move and modify history variables manually. Refer to [20] and [12] for the meaning of histories. If CLEAR, all history variables are removed before generating the result file. If YES, define as many history variables as should be modified (see below).
    MAX_NUM_HISV = INTDefine the new maximum number of history variables. This is an easy way to get rid of unwanted histories that are of no use for the new model, but also allows you to extend the number of histories output. If a history variable is moved to a position that is higher then the actual number of history variables in the input deck, the number of histories is extended automatically.

    The Envyo application implements an equation parser based on the Shunting yard algorithm and is available as an MIT license [6]. This equation parser has been modified to work with common LS-DYNA variables such as histories, and effective plastic 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 2nd order stress tensor.
    &SIG_INITEnables initialization of a specific stress value that refers to all stress components.
    expExponent. An alternative input would be e**.
    Example

    The following example illustrates 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.21.5.1.3. Fiber Orientation Tensor Dependent Material Model Handling

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

    Method 1: Using *ELEMENT_SHELL_COMPOSITE (_LONG)

    Since each through-thickness IP for 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 = INTDefine the number of parts in the target mesh that are considered within the mapping. This option must be followed by OriTensorMID#i definitions.
    OriTensorMID#i = DOUBLE DOUBLE DOUBLE; INTDefine as many fiber orientation tensor and material ID pairs as specified in NumOriTensorMIDs. Three double values represent the a11, a22, and a33 orientations of the tensor, respectively. The integer value seperated by a semicolon represents the material ID asigned for this orientation tensor.
    MapMainDir = YESThis option must be defined. The output is *ELEMENT_SHELL_COMPOSITE. Fiber orientations are represented by BETA angles for each through thickness IP.
    Method 2: Using the *MAT_157 IHIS Option

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

    EnvyoOrient:DOUBLE;DOUBLE;DOUBLE

    where double values represent the 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 IP material IDs using the *ELEMENT_SHELL_COMPOSITE keyword. The following options must also be defined:

    Shell_Option = CompositeActivates the *ELEMENT_SHELL_COMPOSITE output routine
    IntegrationRule = Eq DistrEqually-distributed, through-thickness IP positions are used. A detailed explanation is provided under the IntegrationRule option above.

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

    4.21.5.1.4. *MAT_4A_MICROMEC (*MAT_215) Output

    No further information is required when using *MAT 215 on the target side.