Difference between revisions of "Damping Options"

From OSUPDOCS
Jump to navigation Jump to search
Line 36: Line 36:
* <tt>(maxAlpha)</tt> can optionally specify a maximum damping coefficient (&alpha;) entered in units of 1/sec. The default is to have no limit to damping, but a maximum can be used to prevent out-of-control overdamping. When a limit is needed, however, it might be a symptom of a poor simulation with too much kinetic energy.
* <tt>(maxAlpha)</tt> can optionally specify a maximum damping coefficient (&alpha;) entered in units of 1/sec. The default is to have no limit to damping, but a maximum can be used to prevent out-of-control overdamping. When a limit is needed, however, it might be a symptom of a poor simulation with too much kinetic energy.


In <tt>XML</tt> input files, damping is activated with the the following command, which must be within the <tt><MPMHeader></tt>:
In <tt>XML</tt> input files, damping is activated with the the following commands, which must be within the <tt><MPMHeader></tt>:


  <Damping function='(alphaVsT)'>(alphaNum)</Damping>
  <Damping function='(alphaVsT)'>(alphaNum)</Damping>

Revision as of 15:38, 7 November 2013

NairnMPM has two forms of grid damping. Their most common use to to damp dynamic effects an converge to static solution.

Introduction

Grid damping is a damping term applied each node on the grid that alters the grid forces (or accelerations). In brief, the force update on node i with damping is calculated from:

      [math]\displaystyle{ f_{i}(t+\Delta t) = f_{i}(t) - \alpha p_i }[/math]

where fi is total force on node i from all sources, pi is nodal momentum, and α is the grid damping constant (in units of 1/sec). The nodal velocity update becomes:

      [math]\displaystyle{ v_{i}(t+\Delta t) = v_{i}(t) +(a_i^* - \alpha v_i^*) \Delta t }[/math]

where ai* = fi/mi is nodal acceleration without damping, vi* = pi/mi is nodal velocity, and mi is nodal mass.

The two types of grid damping available in NairnMPM differ only in entry end evolution of the damping term α. Simple damping just specifies α as a constant value (or optionally as a function of time). Alternatively, feedback damping provides a variant of Nose-Hoover feedback,[1][2][3] which implements a scheme to evolve the damping coefficient depending on the current total kinetic energy. This approach can evolve the kinetic energy to zero (for a static result) or to any provided non-zero target kinetic energy. In feedback damping, α is initialized to zero and then evolves by kinetic energy evaluated on the grid:

      [math]\displaystyle{ {d\alpha\over dt} = {2K\over m_{tot}} \sum_{{\rm node}\ i} {1\over 2} m_i |v_i|^2 - T_k }[/math]

where K is a gain parameter, mtot is total mass, and Tk is the target kinetic energy. The (2/mtot) is an arbitrary scaling used to make K similar to a different feedback damping method used in earlier versions of this code and an attempt to make K less dependent on problem size.

Damping Commands

In scripted files, viscous grid damping is activated with the two commands

Damping (alphaVsT)
FeedbackDamping (gain),<(Tk)>,<(maxAlpha)>

Although both can be used, usually only one damping method is used in a simulation. The parameters are:

  • (alphaVsT) is a constant damping factor or a user defined function of time that evaluates to a grid damping constant. The units are 1/sec and the default value is 0.
  • (gain) is gain for evolution of α in feedback damping. It has units of 1/mm2. The default is 0 or no damping.
  • (Tk) in an optional user-defined function of time that evaluates to a target kinetic energy in μJ. The default value is 0.
  • (maxAlpha) can optionally specify a maximum damping coefficient (α) entered in units of 1/sec. The default is to have no limit to damping, but a maximum can be used to prevent out-of-control overdamping. When a limit is needed, however, it might be a symptom of a poor simulation with too much kinetic energy.

In XML input files, damping is activated with the the following commands, which must be within the <MPMHeader>:

<Damping function='(alphaVsT)'>(alphaNum)</Damping>
<FeedbackDamping target='(Tk)' max='(maxAlpha)'>(gain)</FeedbackDamping>

where the new (alphaNum) is a constant damping factor (only numbers are allowed). This constant value is only used if no function attribute is provided. The units are 1/sec and the default value is 0.

Using Damping

Adding damping allows a dynamic calculation to approach static results after sufficiently long times. Too much damping, however, will disturb the results. The amount of damping to approach static results without over damping depends on the problem being damped. Under static conditions (no longer applying forces or moving particles), the total kinetic energy on the grid will decay with a exponential time constant on the order of τ ≈ 1/(2α). The amount of damping should scale with wave speed of the materials or vibration times in problems involving. One set of tension tests on an isotropic material with E = 2300 MPa and ρ = 1 g/cm3 looked good with k = 5000 sec-1 or τ ≈ 0.1 msec. For a given problem, the damping will therefore scale with √(E/ρ).

Feedback can archive to monitor alpha and can decay to Tk if Tk is known. For example in monotonic tension test...


Notes

  1. A Nose-Hoover thermostat works in molecular calculations by tying kinetic energy to temperature. Here the thermostat ties kinetic energy to an expected kinetic energy after vibrations are damped out. When boundary conditions are constant, the target kinetic energy should be zero and feedback damping will help the problem converge to the static solution. For non-constant boundary conditions, you need to estimate the "static" (i.e., very slow loading) kinetic energy and use that as the target (in parameter #2) to have this thermostat work correctly.
  2. The use of feedback damping in MPM calculations was first described in Ayton, et al, 2002. This reference evolved α using
         (dα/dt) = K Σ |vp*|2 

In other words the update was based on sum of velocities and there was no target kinetic energy. This approach is only suitable for problems with static boundary conditions. The modifications here allow its use with variable boundary conditions (assuming you can estimate the expected kinetic energy) and uses kinetic energy rather than a velocity sum. The use of kinetic energy makes the method more general and therefore better able to handle composite materials having particles of different masses. Furthermore, the kinetic energy is found from grid masses and velocities rather than particle masses and velocities becuase in some problems particle kinetric energy can develop artifacts while grid kinetic energy is more robust estimate of total kinetic energy.

References

  1. D. J. Evans and B. L. Holian, The Nose-Hoover Thermostat. J. Chem. Phys., 83, 4069–4074 (1985).
  2. W. G. Hoover, Canonical dynamics: equilibrium phase-space distributions. Phys. Rev. A., 31, 1695–1697 (1985).
  3. G. Ayton, A. M. Smondyrev, S. G. Bardenhagen, P. McMurtry, and G. A. Voth, "Interfacing Molecular Dynamics and Macro-Scale Simulations for Lipid Bilayer Vesicles," Biophys J, 83, 1026-1038 (2002)