Our website uses cookies. By using the website you agree ot its use. More information can be found in our privacy policy.

Mass scaling

Mass-scaling refers to a technique whereby nonphysical mass is added to a structure in order to achieve a larger explicit timestep.

Anytime you add nonphysical mass to increase the timestep in a dynamicanalysis, you affect the results (think of F=m*a). Sometimes the effect is insignificant and in those cases adding nonphysical mass is justifiable. Examples of such cases may include the addition of mass to just a few small elements in a noncritical area or quasi-static simulations where the velocity is low and the kinetic energy is very small relative to the peak internal energy. In the end, it's up to the judgement of the analyst to gage the affect of mass scaling. You may have to reduce or eliminate mass scaling in a second run to gage the sensitivity of the results to the amount of mass added.

One can employ mass scaling in a selective manner by artificially increasing material density of the parts you want to mass-scale. This manual form of mass scaling is done independently of the automatic mass scaling invoked with DT2MS in *CONTROL_TIMESTEP.

When DT2MS is input as a negative value, mass is added only to those elements whose timestep would otherwise be less than
|DT2MS|. By adding mass to these elements, their timestep becomes equal to |DT2MS|. An infinite number of combinations of TSSFAC and DT2MS will give the same product, i.e., timestep but the added mass will be different for each of those combinations. The trend is that the bigger |DT2MS| (and the smaller TSSFAC while TSSFAC*|DT2MS|=const), the greater the added mass. In return, stability may improve as TSSFAC is reduced (just as in non-mass-scaled solutions). If stability is a problem with the default TSSFAC of 0.9, try 0.8 or 0.7. If you reduce TSSFAC, you can increase |DT2MS| proportionally so that their product, and hence timestep, is unchanged.

To determine where and when mass is automatically added, write GLSTAT and MATSUM files. These files will allow you to plot added mass vs. time for the complete model and for individual parts, respectively. To produce fringe plots of added mass in parts comprised of shell elements (DT2MS negative), set STSSZ=3 in *DATABASE_EXTENT_BINARY. You can then fringe the added mass (per element) using LS-POST by choosing Fcomp > Misc > time step size. (Here, the label "time step size" is really the element added mass.)

The difference between using a positive or negative number for DT2MS in*CONTROL_TIMESTEP is as follows:

Negative: Mass is added to only those elements whose timestep would otherwise be less than TSSF*abs(DT2MS). When mass scaling is appropriate, I recommend this method.

Positive: Mass is added or taken away from elements so that the timestep of every element is the same. My opinion is there is no advantage to using this method over the negative DT2MS method and I find it harder to rationalize.

The parameter MS1ST in *CONTROL_TIMESTEP controls whether mass is added only once during initialization (MS1ST=1) or anytime as necessary to maintain the desired timestep specified via DT2MS (MS1ST=0).

You can use ENDMAS in *CONTROL_TERMINATION to stop the calculation aftera certain amount of mass has been added (active for automatic mass scaling only).

Mass-scaling of deformable spotweld beams:

The mass-scaling parameter in *MAT_SPOTWELD (DT) affects only the spotwelds. If no mass-scaling is invoked in *CONTROL_TIMESTEP (DT2MS=0.) AND the timestep is controlled by the deformable spotwelds, DT can be used to add inertia to the spotwelds during intialization in order to increase the timestep to a value of DT. When DT is nonzero, mass added to spotweld beams is reported to d3hsp. MATSUM momentum and KE does NOT factor in added mass to def. spotwelds. GLSTAT DOES factor in added mass to total KE.

Consider 3 cases of invoking mass-scaling in a model with deformable spotwelds:

  1. Although "percentage mass increase" under "Deformable Spotwelds:" in d3hsp is bogus when DT2MS is neg. and DT in *MAT_SPOTWELD = 0, the following are correct: "added spotweld mass" in d3hsp "added mass" and "percentage increase" in d3hsp AFTER the first time step "added mass" in glstat and matsum
  2. Added spotweld mass controlled by DT in *MAT_SPOTWELD is NOT INCLUDED in "added mass" given in d3hsp, glstat, or matsum when DT2MS is neg. and DT in *MAT_SPOTWELD is nonzero. This can be quite misleading. User must check for "added spotweld mass" in d3hsp. Recommended: Do not invoke both mass-scaling criteria. Neg. DT2MS with DT=0 (case 1 above) is preferred.
  3. If DT is nonzero and DT2MS=0, the initial timestep will NOT consider added spotweld mass but the time step will increase by 10% each cycle until the correct timestep (considering added spotweld mass) is achieved. Glstat and matsum contain no "added mass" line item.

Selective mass-scalling:

Selective mass-scaling (new in LS-DYNA V971 R3) is invoked using DT2MS and IMSCL in *CONTROL_TIMESTEP. Selective mass-scaling can be turned on using the IMSCL in *CONTROL_TIMESTEP and could apply either to all the parts of the model (set to 1) or do just a few parts (<0 with abs(IMSCL) = part set list) which is recommended as the selective mass-scaling is both memory and CPU intensive.
The selective mass scaling option requires the solving of a sparse equation system every time step. The mass matrix is no longer diagonal. Storing the non-diagonal mass matrix requires some memory and the solution of m*a=F takes some CPU time. The system is solved iteratively.