# 3.3. Mass Scaling

## 3.3.1. What is Mass Scaling?

Mass scaling allows for arbitrarily increasing the mass of certain nodes to increase the global estimate of the critical time step; therefore, mass scaling is used in conjunction with a node-based time step. The nodes where the mass is increased must be associated with elements that control the global time step; increasing the mass at a node of an element effectively raises the critical time step estimate for that element.

Mass scaling only adjusts the mass at the nodes. It does not, however, modify the density value used in the element calculations, even though the net effect of mass scaling makes it appear as though it has. Mass scaling does not affect the load applied by gravity boundary conditions, centripetal force boundary conditions, or the mass properties reported in the log file.

Mass scaling can be useful in these circumstances, such as

- quasi-static or rigid-body motion: If the model or part of a model is undergoing what is nearly quasi-static or rigid-body motion, adding mass may have little effect on the end result.

- disparate element sizes: A model may contain groups of elements that are much smaller than others. For example, in screws or gears that are modeled in detail, elements in the screw threads or gear teeth could be much smaller than elements in other portions of the model. If the dynamic response of these small parts is unimportant relative to the rest of the model, adding mass to them might not affect the quantities of interest.

- increasing the critical time step for “unimportant” model components: In some problems, a relatively unimportant mesh feature may control the critical time step. Consider, for example, a car crash simulation in which the bumper is the first part to strike an object. The crumpling deformation could reduce the time step in some elements in the bumper, potentially controlling the global critical time step. At a later time in the analysis, however, the effect of the bumper on the overall crash dynamics may not be significant; thus, mass scaling could be applied to ensure that the noncritical bumper does not control the global time step.

Warning

Use of mass scaling will introduce unbounded and potentially unpredictable errors into the analysis and should thus be used with caution. The analyst must use discretion to determine whether mass scaling may be used in a way that does not distort the results of interest.}

### 3.3.1.1. Mass Scaling Command Block

    BEGIN MASS SCALING
      #
      # node set commands
      NODE SET|NODESET = <string list>nodelist\_names
      SURFACE = <string list>surface\_names
      BLOCK = <string list>block\_names
      ASSEMBLY = <string list>assembly\_names
      ELEMENT = <string list>element\_names
      NODE = <string list>element\_names
      INCLUDE ALL BLOCKS
      REMOVE NODE SET = <string list> nodelist\_names
      REMOVE SURFACE = <string list>surface\_names
      REMOVE BLOCK = <string list>block\_names
      #
      TARGET TIME STEP = <real>target_time_step
      ALLOWABLE MASS INCREASE RATIO = <real>mass_increase_ratio
      #
      # additional command
      ACTIVE PERIODS = <string list>periods
      INACTIVE PERIODS = <string list>periods

      UPDATE INTERVAL = INITIALIZATION_ONLY | EVERY_STEP | AUTOMATIC
        (AUTOMATIC)
    END MASS SCALING

The `MASS SCALING` command block controls mass scaling for a specified set of nodes and appears in the adagio region scope. This command block contains one or more command lines to specify the node set. It also contains two command lines that determine how the actual mass scaling will be applied to the nodes in the node set. In addition to the command lines in the two command groups, there are two additional command lines: `ACTIVE PERIODS` and `INACTIVE PERIODS`. These command lines are used to activate or deactivate the mass scaling for specified time periods.

Multiple `MASS SCALING` command blocks can exist to apply different criteria to different portions of the mesh at different times. For any given set of `MASS SCALING` command blocks, mass will only be added to a node if doing so will allow increasing the global time step. The amount of artificial mass added to a node will vary in time as the mesh deforms and moves. The added mass computation is recomputed every time the node-based time step estimate is recomputed.

NOTE: Mass scaling must be used in conjunction with the node-based time step estimation method. Consult Section 3.2.3 for a description of the node-based method for estimating the critical time step.

Following are descriptions of the different command groups:

### 3.3.1.2. Node Set Commands

The `node set commands` portion of the `MASS SCALING` command block specifies the nodes associated with the boundary condition. This portion of the command block can include some combination of the following lines:

    NODE SET|NODESET = <string list>nodelist\_names
    SURFACE = <string list>surface\_names
    BLOCK = <string list>block\_names
    ASSEMBLY = <string list>block\_names
    INCLUDE ALL BLOCKS
    REMOVE NODE SET = <string list> nodelist\_names
    REMOVE SURFACE = <string list>surface\_names
    REMOVE BLOCK = <string list>block\_names

These command lines, taken collectively, constitute a set of Boolean operators for constructing a set of nodes. See Section 7.1.1 for more information about the use of these command lines for creating a set of nodes for mass scaling. There must be at least one `NODE SET|NODESET`, `SURFACE`, `BLOCK`, `ASSEMBLY`, or `INCLUDE ALL BLOCKS` command line in the command block. Assemblies may contain blocks, surfaces, nodesets, or assemblies of these.

## 3.3.2. Mass Scaling Commands

The `MASS SCALING` command block may contain either a

    TARGET TIME STEP = <real>target_time_step

command line or an

    ALLOWABLE MASS INCREASE RATIO = <real>mass_increase_ratio

command line, or both of these command lines can appear in the input block.

The `TARGET TIME STEP` command lines sets the maximum time step for a set of nodes. The parameter `target_time_step` is the maximum time step for all the nodes specified in the command block.

The `ALLOWABLE MASS INCREASE RATIO` command line sets an upper limit on the mass scaling at a node. The value specified for `mass_increase_ratio` limits the ratio of the mass at a node, as set by mass scaling, to the original mass at the node. (The original mass of the node is determined only by the element contributions.) This ratio must be a factor greater than or equal to 1. If \(m_{s}\) is the scaled mass at a node and \(m_{0}\) is the original mass at the node due only to element contributions, then the ratio \(m_{s} \div m_{0}\) will not exceed the value of `mass_increase_ratio`.

Mass scaling will add mass to nodes until the target time step is reached, the mass added to some node reaches the allowable mass increase ratio, or the current set of nodes no longer controls the global analysis time step.

The amount of mass added due to mass scaling is stored in the nodal variable `mass_scaling_added_mass`. This variable can be output and post-processed to determine how much mass is being added at a given time. See Section 9.3.1 regarding the output of nodal variables to a results file.

## 3.3.3. Additional Commands

The `ACTIVE PERIODS` or `INACTIVE PERIODS` command lines can optionally appear in the `MASS SCALING` command block:

    ACTIVE PERIODS = <string list>periods

    INACTIVE PERIODS = <string list>periods

These command lines determine when mass scaling is active. See Section 2.6 for more information about these command lines.

The `UPDATE INTERVAL` command defines how often mass scaling is updated. The default `AUTOMATIC` updates the mass scaling when the time step has changed significantly (greater than 5%) since the last mass update. Mass shifting can be expensive so this automatic option avoids changing the mass at too high of a frequency. The `EVERY_STEP` option recalculates the mass scaling every single step based off of the current model stiffness. Use of this option will ensure the model run at exactly the specified time step. The `INITIALIZATION_ONLY` option will calculate the mass scaling once at the first time step. The nodal mass scaling will not change after this point. This option can be useful to accept and bound how much mass will be added to the model once and not have the possibility of the mass changing later in time.