# 20. Other In-Development Capabilities

This chapter describes other miscellaneous capabilities that are still in development or have limited testing.

## 20.1. Element Birth (Element Activation)

    BEGIN ELEMENT BIRTH <string>birth_name
      BLOCK = <string list>block_names
      BIRTH START TIME = <real>time
      CRITERION IS ELEMENT VALUE OF
        <string>var_name <|<=|=|>=|> <real>tolerance
        [<integer>num_intg INTEGRATION POINTS REMAIN]
      CRITERION IS AVG|MAX|MIN NODAL VALUE OF
        <string>var_name <|<=|=|>=|> <real>tolerance
      CRITERION IS GLOBAL VALUE OF
        <string>var_name <|<=|=|>=|> <real>tolerance
    END

A limited element birth/activation capability is provided for the target use cases of additive manufacturing and welds.

Elements are birthed upon an element variable, nodal variable, or global variable criterion. See Element Death section of the Sierra/SM User Manual for tips on properly setting up death/birth criteria based on a registered variable.

This capability is currently implemented for UG Hex8 elements with isotropic hypoelastic materials only.

Element birth works with thermal strains. Inactive elements do not accumulate thermal strains.

Element birth will error if a node is shared between an element birth block and a block involving: contact, force external boundary conditions, and kinetic boundary conditions.

## 20.2. Initial Particle Conversion

    BEGIN CONVERSION TO PARTICLES AT INITIALIZATION <string>name
      BLOCK   = <string list>block_names
      ASSEMBLY   = <string list>assembly_names
      SECTION = <string>section_name
    END

The initial particle conversion capability is provided to facilitate the creation of particle meshes for particle based methods—such as smooth particle hydrodynamics (SPH) or reproducing kernel particle method (RKPM)—from an initial mesh of solid elements (e.g., hexes).

At the beginning of the analysis the solid element blocks listed in `block_names`, or assemblies of solid element blocks listed in `assembly_names` are converted to spherical particles of the type defined in the particle section `section_name`. It is important to note that the particle section will thus supersede any section specified in the original solid element block definition (consult Sierra/SM User Manual section on Element Block Parameters).

Note that elements may also be converted to particles via element death (consult Sierra/SM User Manual section on Element Death); however, conversion at initialization should offer more robust creation of particle meshes that are (a) compatible with the original mesh boundary conditions and (b) amenable to the chosen particle formulation methodology.

## 20.3. Shell Contact Lofting Factor

Warning

The shell contact lofting factor only works with Dash contact.

    BEGIN SHELL SECTION <string>shell_section_name
      # ... see the Elements chapter of Sierra/SM User Manual
      CONTACT LOFTING FACTOR = <real>contact_lofting_factor
    END [SHELL SECTION <string>shell_section_name]

The `CONTACT LOFTING FACTOR` line command is available in the `SHELL SECTION` command block to set a lofting factor specifically for use in contact. This contact lofting factor is used in place of the kinematic lofting factor for creation of the shell lofted geometry in contact. If no contact lofting factor is set, the kinematic lofting factor is used for contact.

The contact lofting factor has no effect on the shell element kinematics, and the `LOFTING FACTOR` and `CONTACT LOFTING FACTOR` line commands may be used in combination to independently set the kinematic and contact lofting factors, respectively.

## 20.4. Discrete Element Method (DEM)

The discrete element method is a particle based element formulation. This method is in early development, experimental, and currently not recommended for use.

    BEGIN DEM OPTIONS
      ...
    END
    BEGIN DEM SECTION
      ...
    END

## 20.5. High Precision Assembly

Summation of floating point values can accumulate rounding errors, which can be unbounded and much larger than machine precision in pathological cases with cancellation. A prototype capability that implements the Kahan-Babushka-Neumair compensated summation algorithm [[1]] for element-wise contribution to nodal fields has been implemented for a restricted set of cases detailed below. The higher precsion assembly is activated in both explicit and implicit regions with the following line command.

    HIGH PRECISION ASSEMBLY = ON|OFF (OFF)

The high precision assembly is currently supported for the following use cases:

> - assembly of nodal `force_internal` for the UG Hex8 element

## 20.6. Randomized Mesh Order

The following developer command enables scrambling the input mesh entity orders so that sensitivity to things like bucket-ordering etc. may be investigated. The command is at the region scope.

    DEVELOPER COMMAND: SCRAMBLE MESH [SEED]

The default `SEED` is 0, which will use a random seed. A positive non-zero seed may be used to provide repeatable randomization of the input mesh.

[1]

W. Kahan. Pracniques: further remarks on reducing truncation errors. Commun. ACM, 8(1):40, January 1965. URL: https://doi.org/10.1145/363707.363723, doi:10.1145/363707.363723.