4.29. Point Cloud to Shell

This option enables transferring arbitrary values from point clouds onto shell meshes. Therefore, the point cloud has to be given in a specific format.

4.29.1. Main Mapping Command

ENVYO = PCL-SHELL

4.29.2. Input and Output Meshes

SourceFile = STRING Define the name and, if needed, the path of the source file (in this case, a *.csv file).

SourceFileFormat = CSV

PIXEL − CSV

Define the format of the file that is read.
NumSourceFile = INT Number of source *.csv files used for the input. This works in combination with pixel csv files and temperature mapping. Temperature data from several files is mapped onto the target mesh either as LS-DYNA lsda tprint files, or as ASCII, using *BOUNDARY_TEMPERATURE_NODE.
SourceFile#i = STRING,DOUBLE

If multiple source files are used, first provide the file name followed by a time value used as abscissa value of a temperature-time curve. The output can either be LS-DYNA lsda tprint - files, or ASCII, using *BOUNDARY_TEMPERATURE_NODE.

TargetFile = STRING Define the name and, if needed, the path of the target file. This must be an LS-DYNA mesh.
MappingResult = STRINGDefine the result file name. The mapping result is written into this newly generated file.

For csv-format, assume the following: the first line is left for comments about the meaning of the listed values. All other lines are interpreted as points of the point cloud. The first three values separated with commas are assumed to be the coordinates of the points. All the other following values are considered to be history variables. Future developments may take into consideration such values as stresses, strains and others with the methods described below.

For pixel-csv, data is provided as result data for a point cloud which has to be generated first. This application only works in combination with temperature mapping and the input of the PixelSize is necessary. The point cloud for the provided values is generated using the PixelSize starting at the origin (0,0,0) and generating points in the x- and y direction following the values provided in the pixel-csv file.

ResultFileFormat = LS−DYNA

LSDA

Define the result file format. LS-DYNA is the default value. Also, the output of lsda binary tprint files can be activated. Those can be used within LS-DYNA in combination with the keyword *LOAD THERMAL BINOUT.
TransformedMeshFile = STRING Specify the file name where the transformed mesh will be written. This option is intended only for the postprocessing of the transformation. For additional details, refer to the Transformation Options section below.

4.29.3. Transformation Options

Transformation refers to the transformation of the source meshes. Operations include transformation, rotation, and scaling in this particular order.

TRANSFORMATION = YES

NO

Turn transformation on or off.

WriteTransformedMesh = YES

NO

Activates the output of the transformed mesh file to control the accuracy of the applied transformation. Define a TransformedMeshFile, as mentioned above.

RotateSRC = DOUBLE;X

DOUBLE;Y

DOUBLE;Z

DOUBLE; DOUBLE DOUBLE DOUBLE

The source mesh is rotated at an angle (first value) in degrees about the defined axis. Predefined axes are X, Y, and Z. A user-defined axis is also possible, separating three double values with space, following the semicolon (x y z).
MoveSRC = DOUBLE DOUBLE DOUBLE The source mesh is moved along the user-defined vector (x y z).
ScaleSRC = DOUBLE The source mesh is scaled about the origin using the defined scale factor.

ChangeUnitSystem = YES

NO

Enables changing the unit system of the source mesh to the unit system of the target mesh. Check the results carefully since not all options may work properly.

SourceUnitSystem = kg − m − s

ton − mm − s

kg − mm − ms

g − mm − ms

Available unit systems for the source mesh.

TargetUnitSystem = kg − m − s

ton − mm − s

kg − mm − ms

g − mm − ms

Available unit systems for the target mesh.

4.29.4. Target - PIDs

NumTargetPIDs = INT Define the number of parts in the target mesh to be considered within the mapping. This option must be followed by TargetPID#i definitions.
TargetPID#i = INT Define as many part IDs as given in NumTargetPIDs. These parts are considered for the mapping.

Note:  The options given above specifically narrow down the scope of the mapping procedure to defined part IDs. Other parts are ignored.


4.29.5. Mapping Options

ALGORITHM = ClosestPoint The ClosestPoint option 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.

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 = DOUBLE

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

NPLANE = INT

1 - Reduced integrated thick shell elements

4 - Fully integrated thick shell elements

NTHICK= INTDefine the number of through-thickness integration points.

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 they belong to. This is especially crucial for the components with ribs. By default, Thck_Avg_Opt = 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 point(s) using shape functions, allowing for the correct calculation of the local through-thickness integration points. By choosing Thck_Avg_Opt = Nodal Avg option, the program collects all thicknesses stored on one node from its attached elements in the first step and averages these thicknesses. Afterwards, the interpolation to the in-plane integration points using the shape functions is performed.

MapStrain = YES

NO

Enable this option to ensure strains are transferred.

MapStress = YES

NO

Enable this option to ensure stresses are transferred. This option must be turned on to transfer histories as well.

MapTemperature = YES

NO

Enable this option to ensure temperatures are transferred. It activates the output if *INITIAL_TEMPERATURE_NODE in the result file and only works in combination with the pixel-csv file format.
InitialStress = doubleEnables initializing a specific stress value for all elements and integration points. This flag is mainly used to remove all stresses after mapping is performed, so that InitialStress = 0.0.
PixelSize = double

Defines the size of the pixels. Pixels hold result data stored in pixel-csv file and are mapped onto nodes using *INITIAL_TEMPERATURE_NODE with the current implementation.

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 you want modified. See Equation Parser.
MAX_NUM_HISV = INTDefine a new maximum number of history variables. This allows you to get rid of unwanted histories which are of no use for 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 is extended automatically.
SORT = BUCKETAlways use bucket sort for a significant speed up of 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.

4.29.6. Equation Parser

The Envyo application implements an equation parser based on the Shunting yard algorithm and is available as a MIT license [6]. This equation parser has been modified to work with common LS-DYNA variables such as histories, eff. plast. strains, stresses, temperatures and others. 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 2nd order stress tensor.

&SIG_INIT Enables initializing a specific stress value that refers to all stress components.
T Enables modifying temperature initial values or curves stored on nodes.
&ADD ELE HISV#i Element history variable from file i is used.
&LookupTable#1 Lookup table from file i is used.
exp Exponent. An alternative input is 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, times 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. Only eight history variables are written to the final result file due to MAX_NUM_HISV.

The temperature stored on nodes as fixed initial values and/or curves as temperature over time are transferred from Celsius degrees to Kelvin degrees.