XPIC Features

From OSUPDOCS
Jump to navigation Jump to search

XPIC(m) is an improved form of MPM, which is only available in OSParticulas.[1]. The page explains how to use XPIC(m) features.

Introduction

The PIC method can be described as applying a projection operator that modifies (and filters) particle velocities before updating them with the grid acceleration. The problem with PIC is that its projection operator filters most problems too heavily resulting in significant dissipation of energy. XPIC(m) is a new method that solves the energy dissipation problem, enhances overall stability of MPM, and reduces noise. XPIC(m) defines a series of new projection operators that can significantly reduce the over damping of PIC simulations. XPIC(m) is defined by an order m, where m=1 is PIC, m>1 is XPIC, and large m approaches an ideal FLIP method with all null-space noise removed. In other words, m from 1 to infinity provides an interpolation between PIC and optimized FLIP, but is probably a better interpolation than the simple linear combination provided by standard PIC damping.

Performance

The drawback of XPIC(m) is that each higher order of XPIC(m) requires an extra extrapolation. The extra calculations scale with m*N where N is the number of particles in the problem. XPIC is therefore less efficient than PIC or FLIP (or a PIC damping linear combination of FLIP and PIC). In many problems, m=2 already provides much improvement over PIC and reduces undesirable energy dissipation with minimal extra calculations. Larger m is often better with m=5 appearing to provide much benefit without too much extra cost. Very high values of m (e.g., m>40) are typically unstable (due to too many additional extrapolations).

One option to use XPIC(m) efficiently, is to do XPIC(m) projections periodically rather then on every time step.

XPIC(m) Commands

The best way to use XPIC(m) is to schedule a PeriodicXPIC Custom Task. In brief, this task selects the XPIC order m and selects a fraction XPIC. Normally, the fraction XPIC should be 1 and the update will use the XPIC(m) method. Using fraction XPIC less than 1 will use a linear combination of FLIP and XPIC(m). Selecting fraction XPIC 0 results in pure FLIP calculations. See help on PeriodicXPIC Custom Task for more details. The remainder of this section describe deprecated methods for selecting XPIC (and these methods can not use the option for periodic XPIC calculations; that option requires use of the PeriodicXPIC Custom Task).

Deprecated XPIC Commands

Before the PeriodicXPIC Custom Task was added, XPIC(m) was selected using damping commands

Damping (alphagVsT),<(fractionPIC)>,<(XPICOrder)>
PDamping (alphapVsT),<(fractionPIC)>,<(XPICOrder)>

where the relevant paramters for XPIC(m) are:

  • (fractionPIC) is the fraction PIC to use in the simulation. It can vary from 1 for pure XPIC(m) to 0 for pure FLIP. The default is 0.
  • (XPICOrder) to set the XPIC(m) order or m. It must be an integer and values less than 1 are set to 1. Note that this parameter is ignored unless PIC is activated with (fractionPIC) > 0. The default is 1, which is standard PIC.

Although (fractionPIC) and (XPICOrder) can be set in either the Damping or the PDamping command, only one setting for each is allowed; a simulation will use whichever setting comes last.

In XML input files, (fractionPIC) and (XPICOrder) can be set with commands in the <MPMHeader> element:

<Damping PIC='(fractionPIC)' function='(alphagVsT)'>(alphagNum)</Damping>
<XPIC order='(XPICOrder)'/>

Note that (XPICOrder) is ignored unless (fractionPIC) is greater than zero.

References

  1. C. Hammerquist and J. A. Nairn, "A New Method for Material Point Method Particle Updates that Reduces Noise and Enhanced Stability", Computer Methods in Applied Mechanics and Engineering, 318, 724-738 (2017).