In explicit analysis, the time step is affected by element size and material sound speed. This relationship is discussed in the Theory Manual; see the chapter on "Time Step Control". In very rough terms, time step is proportional to (element size)/soundspeed. So you can see how a smaller element size would reduce the time step. Material sound speed is proportional to 1/sqrt(density). So you can see how mass (=density/volume) would affect the time step. The smaller the time step, the more steps it takes to complete the analysis. More time steps means longer run time. The idea behind mass scaling is that by adding nonphysical mass in key locations, the explicit time step is raised. You have to be careful with this approach however. READ THE NOTES BELOW. ______________________________________________________________________________________________________ (Conventional) Mass-scaling refers to a technique whereby nonphysical mass is added to a structure in order to achieve a larger explicit time step. Anytime you add nonphysical mass to increase the time step in a dynamic analysis, you affect the results (think of F = ma). 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 manually 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 (with a safety factor; see note at end of this file) only to those elements whose time step would otherwise be less than TSSFAC * |DT2MS|. By adding mass to these elements, their time step becomes equal to TSSFAC * |DT2MS|. An infinite number of combinations of TSSFAC and DT2MS will give the same product and thus the same time step, but as TSSFAC is reduced while keeping the product TSSFAC * |DT2MS| the same, the added mass will be greater. 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 time step, is unchanged. A test case with solids (http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/4blocks_load_body_mscale.k) shows the body forces (*LOAD_BODY) do NOT take into account added mass due to mass scaling (DT2MS<0). However, this behavior can be modifed by setting EMSCL > 0 on *CONTROL_TIMESTEP, then EMSCLĂ—100% of the added mass contributes to the body forces. When using SOFT=2 contact AND employing mass scaling, it may be wise to set PSTIFF=1, either in *CONTROL_CONTACT or on Card F of *CONTACT. __________________________________________________________ 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-PrePost by choosing Post > FriComp > Misc > time step size. (Here, the label "time step size" is really the element added mass.) The parameter MSSCL in *database_extent_binary can be set so that either incremental nodal mass (MSSCL=1) or percentage increase in nodal mass (MSSCL=2) is written when DT2MS is negative. This should work for any element type. In LS-PrePost, fringe this added nodal mass or percentage nodal added mass via Post> FriComp > Misc > mass scaling. (See node 580 in http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/taylor.mat3.noerode.mscale.k) ______________________________________________________________ The difference between using a positive or negative number for DT2MS in *CONTROL_TIMESTEP is as follows: Negative: Initial time step will not be less than TSSFAC * -DT2MS. Mass is added to only those elements whose time step would otherwise be less than TSSFAC*abs(DT2MS). When mass scaling is appropriate, I recommend this method. The amount of mass that can be added using this method is limited. 'Excessive' added mass will cause the job to terminate. Positive: Initial time step will not be less than DT2MS. Mass is added OR TAKEN AWAY from elements so that the time step of every element is the same. This method is harder to rationalize although it is not subject to termination from 'excessive' added mass. 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 time step specified via DT2MS (MS1ST=0). You can use ENDMAS in *control_termination to stop the calculation after a certain amount of mass has been added (active for automatic mass scaling only). ___________________________________________________________________________________ RE: OVERVIEW OF SELECTIVE MASS SCALING (SMS): The concept of conventional mass scaling is very simple, as we discussed. It's akin to just increasing the density of elements whose time step would otherwise be smaller than |DT2MS|*TSSFAC. On the other hand, Selective mass-scaling (SMS) does not simply add mass in the manner of conventional mass scaling. It is designed to provide a more physical dynamic solution than conventional mass scaling, but it comes not without cost. 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 additional memory and the explicit solution takes additional CPU time. The system is solved iteratively. Selective mass scaling is invoked using DT2MS and IMSCL in *CONTROL_TIMESTEP. It can be applied either to all the parts of the model (IMSCL set to 1) or to a subset of parts (recommended over universal selective mass scaling for sake of computational efficiency; invoked by setting IMSCL<0 with abs(IMSCL) = part set list). If selective mass scaling is applied to a subset of parts, the remaining parts are subject to conventional mass scaling. For systems that undergo rotation, see the optional variable RMSCL in *CONTROL_TIMESTEP. When deformable bodies which are selectively massed share nodes with a rigid body, take note of the variable RBSMS to 1 in *control_rigid. The Theory Manual (dated 3/29/16 or later) elaborates on RBSMS in the rigid body dynamics chapter. Examples illustrating conventional mass scaling and selective mass scaling. 1. http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/combo_cms_sms.k (selective mass scaling to hex elements (ELFORM 1) and conventional mass scaling to shells). 2. http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/combo_cms2shells_sms2tets.k (selective mass scaling to tets (ELFORM 10) and conventional mass scaling to shells). 3. http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/mscale.3cases.k --------------------------------------------------- Output: LS-DYNA does not output the actual added mass from SMS, as that value is never precisely quantitied at each point in time. Instead, the "added high frequency mass" is a worst case, or upper bound, of added mass and includes conventional added mass and the upper bound of selective added mass. glstat reports only the low frequency added mass, which is another name for the conventional added mass. matsum's added mass includes conventional added mass and the upper bound of selective added mass. Like the added mass values in matsum, the added mass values written to d3plot when MSSCL=1 includes both conventional added mass and the upper bound of selective added mass. Note: "added mass" reported on-screen, in glstat, in matsum, and fringed from d3plot are all misleading when selective mass scaling is employed (pending resolution of Bug #1516, 9/3/2008) -------------------------------------------------------- References: L. Olovsson, K. Simonsson and M. Unosson: Selective mass scaling for explicit finite element analyses. International Journal for Numerical Methods in Engineering, Vol. 63, pp. 1496-1505 (2005) http://ftp.lstc.com/anonymous/outgoing/support/FAQ_docs/olovsson2005_selective_mass_scaling.pdf L. Olovsson and K. Simonsson: Iterative solution technique in selective mass scaling. Communications in Numerical Methods in Engineering, Vol. 22, pp. 77-82, (2006) http://ftp.lstc.com/anonymous/outgoing/support/FAQ_docs/olovsson2006_selective_mass_scaling.pdf Borrvall, T., "Selective Mass Scaling (SMS): Theory and Practice", 2011 Developers' Forum, Stuttgart, Germany, October, 2011. http://www.dynamore.de/documents/papers/develop11/selective-mass-scaling-sms See also: http://www.dynasupport.com/howtos/general/selective-mass-scaling-sms-2 ------------------------------------------------------------------ Some further explanation of selective added mass from the developer: The selective added mass for rigid body translation is zero. The selective added mass for the most critical deformation mode is the same as for conventional mass scaling. The actual selective added mass at a given point in time and for a given element will depend on the deformation/motion of the element and can be anything between those two extreme values. But it is impossible to quantify this value for each point in the simulation (or at least it would require some intricate calculations). Ref: Ticket#2016021810000021 ---------------------------------------------------------- **** UPDATE: Enhancement to selective mass scaling (SMS). **** From T.Borrvall 5/12/10: The Release_Notes_LS-DYNA_971_R5 state "introducing flag for accounting rotations in sms [selective mass scaling] scheme". (See RMSCL in *CONTROL_TIMESTEP.) There is no paper to my knowledge regarding this, I came up with a generalization of Lars's idea and implemented it. The thing is that it adds to the computational cost but does improve things at the same time. Lars' motivation to why not treat the rotational dofs is that their influence diminishes with mesh refinement, but Dilip sent me some models where I could see that it had effect and that motivated me to implement it. From T.Borrvall 11/09: http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/cyl_sms_rot.k http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/head_sms_rot.k are validations of selective mass scaling with rotation option, a shell structure (head_sms_rot.k) and solid structure (cyl_sms_rot.k) are subjected to a load enforcing a rotation. The inertia for (default) selective mass scaling or conventional mass scaling prevents them from rotating but with the new option they rotate very much as if no mass scaling is applied at all. These problems should be run in R5 rev. 56394 and later. **** FURTHER UPDATE to SMS (R6.1 and higher only) *** To avoid having SMS increase inertia (and mass?) of rigid bodies which share nodes with selectively mass scaled deformable bodies, set RBSMS to 1 in *control_rigid. TSSFAC may need to be reduced for stability when this option is invoked. See bugzilla 6633 for example and details. _____________________________________________________________ Note that mass scaling in ALE part is affected by IMASCL on card 3 of *control_ale. When we choose NOT to add mass to ALE elements (IMASCL=0 (default)) but do mass-scale Lagrangian parts (DT2MS<0), the actual time step will be >= tssf*|dt2ms| even if the minimum ALE element time step drops below that threshold. This can bring about unstable behavior and warnings are written to d3hsp. ______________________________________________________________ Time variation of mass scaling: Mass-scaling can also be specified by a load curve with DT2MSLC parameter in *CONTROL_TIMESTEP. When DT2MSLC is greater than zero, it overrides the value of DT2MS. Load curve based mass-scaling, defined using a monotonically increasing curve, is helpful when early part of the simulations is dominated by inertia effects and mass-scaling during this time could affect the responses. In such cases, a load curve based DT2MS can be defined with either a zero or small mass-scaled time step until the end of the dynamic simulation after which a non-zero or a larger mass-scaled time step can be input. It must be noted that LS-DYNA always takes the maximum of the current time step and the ordinate value of the DT2MSLC to compute the mass-scaling. ____________________________________________________________________________ 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 time step is controlled by the deformable spotwelds, DT can be used to add inertia to the spotwelds during intialization in order to increase the time step 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 (spotweld.beam.type9.mscale.initvel.k) 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 time step will NOT consider added spotweld mass but the time step will increase by 10% each cycle until the correct time step (considering added spotweld mass) is achieved. Glstat and matsum contain no "added mass" line item. The above can be illustrated using http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/spotweld.beam.type9.mscale.k __________________________________________________________________________________ Note that added mass may cause the energy ratio to rise. (See http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/taylor.mat3.noerode.mscale.k) _______________________________________________________________________ Note regarding mass added due to negative DT2MS: There is a safety factor of sorts applied to the added mass, i.e., more mass is added than is theoretically required. This is intentional and based on experience. Crash models were seen to often go unstable if the unfactored, theoretical added mass was used. There is also a safety factor for solid element added mass but it's less than for shells. Case study: http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/negDT2MS.safetyfactor.tar test.dyn (in the tar file) establishes the natural time step for a simple shell model to be 4.17e-7. The total mass, all physical, is 7.8e-8. test1.dyn uses dt2ms to raise the time step to 5.04e-7. According to simple theory (mass is proportional to dt^2), the added mass necessary to achieve this time step should be... physical mass + added mass = physical mass * (dt1/dt2)^2 added mass = 7.8e-8 * (5.04/4.17)^2 - 7.8e-8 = 3.6e-8 However, d3hsp reports the added mass to be TWICE this theoretical value or 7.2e-8. By plotting acceleration of the body in test1.dyn, I confirmed that the mass is force/acceleration = 1.0/6.6643e6 = 15.0e-8. This is the sum of physical mass and added mass reported in d3hsp. ____________________________________________________________________________ RE: More differences on added mass for shells vs. for solids After comparing the mass scaling between solids and shells [when a curve DT2MSLC is used in *CONTROL_TIMESTEP], I found that the shells always use the max scaled mass unlike the solids which uses the scaled mass computed at each cycle. This can be considered to be intended behavior. I did another test to countercheck the mass scaling behavior for solid and shell elements. By applying deformation to the solid and shell element the crit. time step is first decreasing and afterwards increasing. Mass scaling is defined by constant DT2MS=-2.0e7. In that case mass is added to the shell and the solid element but stays constant afterwards for both element types: solid and shell. So in that case both element types use the max scaled mass. ah Ticket#2018110210000076 _______________________________________________________________________ RE: Changing added mass via change in DT2MS in a small restart The model and small restart deck in http://ftp.lstc.com/anonymous/outgoing/support/EXAMPLES/change_dt2ms_in_smallrestart.tar can be used to illustrate that a change to DT2MS in a small restart to affect the time step but will not result in a reduction of total added mass. In other words, using this small restart approach, you can't get rid of added mass once it's been added. My conclusion is based on time history plots of added mass and time step from glstat, but also based on nodal time history plots of y-acceleration. If the added mass were to suddenly changes during the simulation, there would have to be a corresponding jump in the y-acceleration since the y-force applied to the free body is constant with time (accel = force/mass). To remove added mass, in lieu of a restart, one could write dynain data using *INTERFACE_SPRINGBACK_LSDYNA and then use that dynain data in a new analysis to initialize deformation, stress, etc. In the new analysis, you'd leave DT2MS blank so there would be no added mass. jd Ticket#2019050710000175 _______________________________________________________________________ See also these text files: http://ftp.lstc.com/anonymous/outgoing/support/FAQ/long_run_times http://ftp.lstc.com/anonymous/outgoing/support/FAQ/quasistatic __________________________________________________________ RE: Time scaling Time scaling is another technique used to reduce run time in an explicit analysis. Here, you increase the rate of loading, e.g., by a factor of 10 or 100, and decrease the termination time by the same factor. To some extent, you may be able to employ this technique and still obtain a quasi-static solution, if that's your aim. jd