RSS feed
  • A Few “Words” on Memory Settings in LS-DYNA

    Memory in LS-DYNA is specified in “words” at the execution time. The term “word” refers to the amount of data that can be written to or read from a memory in one operation. The following figure will aid in the relationships of bits, the most basic data type, to words on various computers. One bit is a basic unit of data which can be transmitted and can be either 0 or 1. A sequence of 4 bits is called as a Nibble and a sequence of 8 bits is called as one ‘Byte’. 16-bits or 2 bytes is equal to one word on a 16-bit computer. 32-bit or 4 bytes is equal to one word on a 32-bit computer. 64-bit or 8 bytes is equal to one word.

    memory1

    memory6

    Memory Settings for SMP LS-DYNA
    In Shared Memory Parallel (SMP), multiple CPUs solve a given problem in parallel using shared memory as shown below. To allocate sufficient memory, we can specify “memory=XXX” in the execution line where XXX refers to the size of the memory in words which is shared by all CPUs.

    memory3

    Memory Settings for MPP LS-DYNA
    There are two memory values that are used by MPP LS-DYNA. MEMORY_1 (specified using memory=xxx in words at the execution line) is used by the first master processor to decompose the model. MEMORY_2 (specified using memory2=xxx in words) is used by all the processors (including the master processor) to solve the decomposed problem. MEMORY_2 depends on the number of processors, the more number of processors, the smaller the decomposed model, and consequently, smaller the memory required.

    (Click image to enlarge)
    memory4

    Other Recommended Memory Settings for LS-DYNA
    1. Set LSTC_MEMORY to AUTO using the environment variable setting. This allows LS-DYNA to use the initial memory values and then to dynamically allocate memory if it needs more memory.
    2. Use roughly 30-70% of the total memory available on the master node as MEMORY_1. This initial memory depends on the model size but the goalwould be to reduce effort by LS-DYNA to dynamically scale the memory. Auto memory feature to allow LS-DYNA to dynamically allocate memory at run time is only applicable for explicit simulations and does not apply for implicit simulations. When running implicit simulations, the user must allocate the required memory based on the model content at run time.
    3. MEMORY_2 (only for MPP) depends on the number of processors. A good number would be to start with 20-40% of the total memory available on the nodes after which LS-DYNA will then dynamically allocate more memory if required.

    Notes
    1. The main memory can be specified either at the command line execution (using memory=XXX words) or in the keyword file (using *KEYWORD XXX ). When both forms of definitions exist, memory specified on the commandline will overrule all other settings.
    2. Memory2 for MPP-LSDYNA can only be specified at the command line execution (using memory2=xxx words).
    3. Memory at the commandline execution can also be specified in Mega words such as memory=260M which is equivalent to memory=260000000 words.

    Some Useful Links
    learn_c
    cnx
    dataref.pdf

    Acknowledgements
    Dr. Jason Wang
    Dr. Brian Wainscott

  • Modeling Symmetric/Unsymmetric NonLinear Discrete Springs

    Discrete springs provide a easy way to model complicated systems by using their responses in the material definitions. This post brings attention to the way LS-DYNA handles the default behavior in tension or compress when the material input does not pass through the origin (0,0) but simply begins from origin. When only one of either compression or tension data is provided, LS-DYNA extrapolates the slope, obtained from the first two pair of points from the defined region, and uses it to compute the force for any deformation in the undefined region. The default cross-region extrapolation may be inaccurate when the behavior of the discrete spring in the undefined region is supposed to represent either a symmetric or unsymmetric non-linear behavior. For representing both types of data, symmetric or unsymmetric , in tensile and compressive regions, the user must always provide a force-displacement or rotation/moment curve that passes through the origin. Figure below shows this default treatment and also highlights the input that must be provided to model the sysmmetric, or unsymmetric data when the non-linear data only in compression is provided for a discrete spring using a material model such as *MAT_SPRING_NONLINEAR_ELASTIC.

    (Click image to enlarge)
    Symmetric Springs

  • Limitations of Penalty Joint Treatment in LS-DYNA

    LS-DYNA supports various joint definition types such as spherical, cylindrical, etc (please refer to the LS-DYNA User’s manual for a complete list). Irrespective of the joint definition type and the elements associated, translational constraints are applied to the joint nodes to model appropriate behavior. The constraints are applied using the default penalty formulation whose stiffness depends on the maximum frequency of all joints in the model, timestep and the timestep-scale-factor (TSSFAC). The default penalty formulation computes the necessary forces in an attempt to model the joint behavior based on the joint type but in some instances the forces generated by the penalty treatment may be insufficient to maintain the constraint. As a good practice, it is always recommended to monitor the relative displacements between the joint nodes to see if there is any separation which would indicate a insufficient forces being generated by the penalty treatment. There are two ways to fix if there is some relative displacement between the nodes. The first approach would be to increase the penalty scalefactor RPS in *CONTRAINED_JOINT keyword whose value is based on trial-and-error appraoch. The second approach is to switch the penalty formulation to an implicit Lagrange-Multiplier formulation which computes the exact force to enforce the joint constraint. Beginning 971 and onwards, this option is now available for both SMP and MPP versions of LS-DYNA and can be invoked using the *CONTROL_RIGID keyword using the parameter LMF.

  • Storing Re-Usable Models in a Central Location with *INCLUDE_PATH

    Beginning version 971 and later, LS-DYNA allows easy way to store models in a central location for use at run time. This feature can be turned on using *INCLUDE_PATH which takes unlimited number of absolute directory names. When INCLUDE_PATH is used, LS-DYNA first checks the file, specified using *INCLUDE keyword, in the local directory and if its not available, it will scan all the directories listed using INCLUDE_PATH in the order of definition. This feature eliminates the need to specify absolute file names. A sample use of this feature is shown below.

    (Click image to enlarge)
    Include Path

  • Best Practices for Modeling Recoverable Low Density Foams – By Example

    Attachments: mat57_default.k.gz

    Modeling recoverable foams poses several challenges in crash worthiness as well as in low-to-medium impact velocity conditions. This is due to its relatively low stiffness when compared with structural materials which has an indirect effect on its contact-impact interactions with other materials. To review the best practices when modeling such components, we can consider a simple example of a rigid steel ball (solid elements) impacting a block of foam (solid elements). To model the interaction between the rigid block and the foam, a two-way contact such as *AUTOMATIC_SURFACE_TO_SURFACE is included. The foam is constrained using SPC definitions on the bottom face. The complete model set up is as shown in Figure 1. The recoverable low density foam is modeled using *MAT_LOW_DENSITY material model whose inputs include density, elastic-modulus, and a load curve to define its engineering stress-strain behavior for compression. The tensile behavior for this model is elastic (uses the compression Young’s modulus, E) and optionally has a cut-off stress value after which the stress remains constant in tension. Unloading behavior by default is along the loading curve but optionally we can provide some energy dissipation parameters HC and SHAPE which control both the amount of energy dissipation and the shape of the unloading curve. For simplicity, we will first ignore any hysteresis and assume that the unloading curve follows the loading curve. As mentioned before, we are going to simulation the impact using all default parameters and then we incrementally update the modeling parameters by monitoring the simulations results.

    foam1

    foam2

    1. Default Parameters
    This simulation consists of all default parameters and with this definition, the job terminated abruptly with messages of ‘Negative Volume’ and ‘Complex sound speed’. The final deformed shape just prior to termination is as shown in the figure below.

    foam3

    Discussion — Timestep and Contact Stiffness for Foam Materials: By default, LS-DYNA computes the timestep and the contact stiffness based on the maximum value of [Young's Modulus (E, specified in the material card), the maximum slope from the stress-strain curve (Ecurve)]. This default approach is conservative to ensure that the computed timestep is stable for all compressive strains. The default value of the modulus from this approach could either be too small (if E is greater than Ecurve) or too large (if the Ecurve is greater than E). LS-DYNA allows us to override this default logic by using a non-zero value of KCON. When KCON is non-zero, the default comparison of E and Ecurve is skipped and LS-DYNA uses KCON for the timestep and the contact stiffness calculations. In the above default simulations, the Ecurve is 10 and E is 50. Consequently, the E value of 50 was used in the timestep and contact stiffness calculations which is roughly 0.025% of the modulus of steel (200000). This huge disparity in stiffness values between the impacting bodies is naturally going to cause instabilities in contact. The alternative approach is to eliminate dependencies on elastic contacts for contact is to use a penalty contact using soft-constraint algorithm (SOFT=1 in *CONTACT). However, LS-DYNA always uses a penalty based approach based on material stiffness for contact between a rigidbody and deformable bodies. Since our ball is modeled as rigid, switching to a soft-constraint formulation will make no difference in the simulation. Therefore using KCON is recommended to alter the modulus and the recommended value is at least 1% of the modulus of the impacting material which in our case is steel. So for our next simulation, we set the KCON to 2000 which is 1% of the steel ball modulus of 200,000.

    2. KCON = 2000 (1% of Steel Ball Modulus of 200000)
    This simulation goes much beyond our run with default parameters but terminates due to similar messages. The final deformed shape is as shown below.

    foam4

    Discussion: As we can see from the cross-section image, the first row of foam elements has collapsed which would explain the negative volume issues. The reason for this is the stress determined by LS-DYNA at large compressive strains. The complete stress-strain curve is as shown below (left). As it can be seen, the last strain point is limited to around 70% but the simulation results shows the strain has reached nearly 100%. For strain magnitudes larger than the last input point in the curve, LS-DYNA extrapolates using the last slope. This may yield small stress values and fails to model the bottoming out effect that occurs at large compressive strains. The fix to this is to manually provide an exponentially increasing curve to cover compressive strains to a minimum of 95-99%. It must be noted that the manual curve must be smooth. The modified curve is as shown below (right).

    foam5

    3. Extended Stress-Strain Curve
    This simulation worked as expected with no instability or error message and terminated normally. The final deformed shape and the transient movie is as shown below.

    foam6

    foam7

    Discussion: Upon close examination of results from the run, we can find that there is some penetration between the ball and the foam block during the maximum compressive strain as shown in following figure. This is attributed to the way the segment thickness is computed for solid elements only for nodal release criteria when using AUTOMATIC type contacts. Much like the shell elements, in which the mid-surface is offset in both directions of the segment normal, the solid segments maximum allowable thickness is computed. The amount of maximum allowable thickness is based on a small percentage (5%) of the solid element diagonal which based on the element geometry could be very small. Small offset values make it vulnerable to nodal release logic used by all AUTOMATIC contacts when there is excessive penetration. For solid elements, except for type 4 and type 26 contacts) the tolerance used for determining the nodal release is 5% of the computed solid segment offset distance. The image below is a classic case of nodes being released and the fix is to increase the offset thickness. We can do this by setting SLDTHK in Optional Card ‘B’ to a value greater than 1mm to ensure no nodes are released from contact.

    4. Increased Solid Element Thickness in Contact
    This simulation works as expected and shows no contact penetration even for large compressive strains and meets all stability and accuracy criteria. The final deformed shape and the transient results are shown below.

    foam8

    Note: What we see above is an ideal example of vertical Numerical process talked in the previous blog. The less time we spend here, the more time we would have to design.

    mat57_default.k.gz

  • Simulation Based Product Design Using LS-DYNA – Single Code & Single Model Benefits

    Over the past decade, the ability of simulations driving the design has grown rapidly and today’s confidence in simulations results is a good testament to it. Two significant areas that have contributed to this is the “Numerical Modeling Awareness” and “Design Domain Knowledge” gained over the years by design and analysis community. Numerical modeling awareness is an expertise that is developed over time and goes beyond the ability to learning specific software. It is an awareness in which an analyst, and in essence the corporation, gains expertise in a single or multiple numerical tool set which is used and calibrated against established prototype results to gain more confidence in the modeling procedures and the numerical intricacies involved in a complex software such as LS-DYNA. Design domain knowledge is again an expertise which is gained by a deep understanding of the product and its performance. It’s a knowledge that is more than just knowing how to surface but rather the ability to design a part for a specific criterion in an aggressive timeline yet meeting all the design requirements. In today’s environment, the iterative process quickly fails and mandates a well established standard operating procedure to achieve design requirements. The two areas in a classical LS-DYNA simulation environment can be grouped together into “Horizontal Changes” (Design Evolution) and “Vertical Changes” (Numerical Changes) and is shown below.

    (Click image to enlarge)
    Single Code

    Horizontal Process
    The horizontal process is where the crux of the design changes happen. It could be simple size changes to full-scale topology optimization. An efficient process here is one in which past experiences in product development for load-specific cases are applied as opposed a clean-slate approach. It is here that standard operating procedures and knowledge based engineering can have its biggest impact on product design.

    Vertical Process
    The vertical process is where a solvers expertise comes into play. Solvers such as LS-DYNA, a generic purpose linear/nonlinear explicit/implicit tool, provides a wide array of features and continues to grow every year to tackle complex problems. Learning to use the software and to make choices in its features to suit a given problem can be daunting at first but can be mastered over time. The vertical numerical process challenges both the developers of the solver, in implementing new features, and its users, in choosing the appropriate features and techniques, to yield most accurate, robust and stable and reliable solution. Several numerical or solver specific modifications can happen in vertical domain which are driven by the motivation to achieve the best possible prediction. Among several potential numerical changes, few examples of changes in this domain include Material models, strain-rate dependency, solver types such as Explicit or Implicit, integration order, Hourglass stabilization procedures, and Contact options. These changes occur either on a frozen design or in some instances could occur over a range of designs. Vertical changes could also involve the choice of modeling techniques such as pure-Largrangian, ALE or SPH which influences the accuracy and scalability of the models. To illustrate this we can consider the modeling of fuels in fueltanks. In a simplistic approach we could use a pure-Largrangian approach which could work when the intent is to use it in small deformations for mass considerations. However, when extending this technique to full-scale sloshing type simulations at high speeds, the limitations of this technique regarding accuracy and scalability will force the analyst to explore other modeling techniques. Fortunately, LS-DYNA provides a range of solution types and in some ways helps the analyst to stay in domain of a single code which dramatically reduces both effort and time when compared to switching to a complete different code to meet the accuracy and scalability requirements. Consequently, a single model for all load cases that can scale well is becoming a reality when solvers offer a wide range of techniques to solve a given problem.