Challenge

Week - 8 Mass Scaling

AIM:- Mass Scaling

OBJECTIVE:- Use mass scaling to reduce the runtime of a model and ensure the stability of mass scaling.

The hard limit on mass scaling is 8% and stability should be completely intact.

This means that two simulations, one with mass scaling and one without should behave exactly the same way.

The submission should contain the trials for mass scaling and the data generated henceforth.

Both the DT and TSSFAC parameters should be optimized. 


The student is supposed to take the attached model and do trial and error for mass scaling.
 
Once the mass scaling objective is reached, a histogram should be plotted to compare the runtime with mass scaling trials.
 
Finally, the student has to run the same model using implicit solver with necessary changes and compare implicit and explicit runtime. 
 
The idea of the simulation is to understand mass scaling parameters.
 
Mass scaling:-  This is the basic step in which we define what exactly we want from the simulation and what all parameters will affect the simulation .
We should look for certain results such as displacement, stress and should optimize a certain result.
 
Dealing with complex models:-  We should avoid solving it in one go and do it step by step.
We should add materials, contacts etc one step at a time.
The main advantage of this is that if the error occurs we can troubleshoot the problem easily

We should make a guess of what exactly the results could be in order to validate the simulation.

Static or Dynamic simulation:- It is very important to run what kind of simulation that if we should simulate static or dynamic . In order to decide we should know that a stress in a part travels in the form of a wave and the speed with which it travels is given by :

c=sqrt(G/rho) where G is the shear modulus and rho is the density of the material.

The time take for the wave to propagate across a part of length l is given by t = l/c 

In many cases the stress becomes static after 10t . If the load keep changes within 10t than we have to consider dynamic effects

If the effect of inertia forces which are the stress waves and the kinetic energy is very big we should consider the effect of quasi static simulations 

If the effect of inertial forces are small we should use the static simulations.

Mass scaling : Whenever we mesh the components, the time step is calculated for all the elements and the time step considers the time step for the lowest element .Let us consider the following case :

LS-DYNA calculates your solution by running over all the nodes in the model at each time step.

In a very simplified explanation, LS-DYNA will look at the total force on each node from the previous time step, use that to find the acceleration of that node, and then to find the displacement of that node.

The node is then moved by this much.

The calculation then updates the strain on the connecting element.

This then goes through the material constitutive equation to get stress, which is applied as a force on the neighboring node in the next time step.

You can imagine this series of calculations behaving like a wave, propagating through your mesh.

The critical thing, however, is you want to calculate all the node positions of your model at the same time, without it being affected by the calculations from the previously calculated node.

This basically means that you need to set your time increment such that the code can calculate the displacements of the next node before the wave from the previous node calculation can hit it.

For instance, if my boundary conditions on the mesh shown below were along the left and bottom edges, and I applied a downward load at node 25, the calculations at t=0 would go as follows:

F at N25 = F0.

This gives acceleration (from F=ma, with mass at 1/4th the mass on element 16).

From acceleration, I calculate displacement for my next time step and move N25.

Now, the movement of this node imposes a strain on element 16, which generates a stress in element 16 (from the material law) which will apply a force on N20. However, I still haven't calculated the displacement of N20 at t=0.

I must do this before the wave propagating from N25's displacement hits N20.

 

The other alternative is called mass-scaling. 

Here, I artificially increase the mass of my smallest elements, and so increase the density of that element, without affecting any other property.

This then means that my wave propagation speed gets artificially reduced, increasing the time step for that element.

Looking at this in reverse, if I have a target time step for my entire model, LS-DYNA can look at which elements are below that time step, and apply just enough mass to those elements to ensure that their time steps hit your target.

You can set a time step manually in the *CONTROL_TIMESTEP card under the dt2ms field. Note, you need to input this value as a negative of your timestep.

 (There are different ways to mass-scale. Read the manual for the different definitions.)

Just because this method allows you to set your own time step does not mean that you can set whatever value you want. Remember, you are artificially increasing the mass in a dynamic simulation as the analysis progresses.

This means that the kinetic energy of that element is artificially going up. LS-DYNA is essentially creating energy from nothing.

 LS-DYNA will output how much your mass-scaling is in the stdout at the beginning of the run.

I would suggest a mass scaling value (as percentage of original mass of your model) of not more than 2%.

Note this is just the initial mass scaling.

The amount of mass added may go up through the simulation (as elements deform).

At the end of the run, check the stat file for mass-scaling over time.

If it is a relatively flat curve and stays under 2% at all times, your result should be close enough to the ideal result (without mass-scaling).

Of course, the best way would be to run one case without mass scaling and compare the results to make sure the level of mass scaling still gives you accurate results.

Time step for implicit analsysis :

In this method there might be  a case in which the amplitude of a certain quantity might happen abruptly which might cause for the problem to not converge and hence lead to instability .

Therefore we could reduce the time step so small that it captures this change properly but at the same time it can increase the computational time .Hence in ls dyna, we can use the following cards :

For example if we keep the upper range as 70 iterations and the lower limit as 30 iterations and during one time step the total iterations are solved within this range the corresponding time step will not change .

But if it solves the iteration within 20 iterations , the timestep will increase.

But if it solves above the 70 iterations , the timestep will be reduce.

The time step increase and decrease will happen within the minimum time step and maximum timestep.

 This control has one drawback it can increase the time because there might be a possibility that the iterations during anytime step might not be within this range.

To tackle this problem we can insert the timestep according to a curve id .

 Also, do not use point loads on nodes as it may lead to instability instead distribute the load on a number of noads as well as it preferred to use displacement-based boundary conditions overload for stability purposes.

Symmetries also play a important role as we can use half a section of the model to find the total result which decreases the efforts to mesh as well as compute.

Symmetry conditions can be given by plane stress , plane strain, and asymmetric model.

 Constraining Bodies for Simulations :

The following steps are advised for setting up a good boundary condition

1. Make FBD of the problem.

2. Label all the applied loads 

3. Make sure the sum of all applied loads as zero

4.Make sure that the sum of moments is also zero.

Use this FBD as a guide for setting up the problem.

3-2-1: Constrain Method :

In this method we do the following :

1. Choose 3 points that are separated and define a plane.

2.The 1st point is constrained in all 3 translations DOF .

3.Take the second point which has the same YZ coordinates but a different x coordinate.

The second point is constrained in YZ translation DOF 

4.The third point is selected in such a manner that it does not lie in line with the first two points.

The third point is constrained only in the z translation dof 

 Use of first order and second-order elements :

First order elements are always for contact but if it is important to model second order elements we can use first order elements on the top and the rest region we can use second order elements .

Second order elements can cause overlap of the elements because of the nodes present in first order elements which increases the stiffness of the overall problem.

We should avoid tetra or triangular elements as they have a very strong stiffness compared to others .

In contact the stiffer material should always be the stiffer material i.e the part with higher elastic modulus.

During solving the problem if there is non convergence we should remove the loads or add constrains and run the model to check for errors that were caused due to a specific condition.Another approach could be to reduce the first time step to such a value that it is able to overcome the non convergence.

When defining variable curves it should be ramp curve instead of a step curve .

Troubleshooting a Few Solver Issue:

Negative Eigen Values :

This error occurs due to the following :

1.Non Physical Material Properties: This occurs when the density is negative or the stress strain curve is negative.

2.Bad Mesh :

DTMS and TSSFAC : 

Time step scaling: during the simulation cycles, elements experience a high impact of forces with other colliding elements which produces high deformation, this involves wave effects.

Time steps can be defined as the wave needs to pass through the smallest element. Manipulating this time step is called time step scaling.

Mass scaling is a nonphysical (nonstructural) mass added to the elements in explicit simulations to adjust elements' time step for next cycle.

In ls-dyna DT2MS Parameter in *CONTROL_TIMESTEP card used to add nonphysical mass to the element

DT2MS is negative, nonphysical mass added to stabilize the time step for a particular element as shown below

DT2MS is positive,

If the element's time step is more than the defined global time step, then mass is removed and on the other end if the time step is below the defined global time step, mass is added.

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 dynamic analysis, 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 gauge the sensitivity of the results to the amount of mass added.

One can employ mass scaling in a selective manner by artificially increasing the 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, 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.)

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.

We will be performing the simulation on the following part :

The following cards have been applied to this model :-

Now we simulate the following cases :-

Case 1 :Simulation with no mass scaling  

 The default conditions in control timestep  are as follows :

Case 2 : When tsffac =0.9 we get the following :

 

As you can see we are getting the total time as 23 hours

Case 2 : When tsffac =0.9 we get the following :-

 

Case 4 : DTMS -3.154E-4 and TSSFAC =0.9

Case 5 : TSSFAC =0.5 and DTMS -3.154E-4 

Case 5 : TSSFAC =0.7 and DTMS -3.154E-4 

Hours vs TSSFAC 

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.