PeriodicXPIC Custom Task
A custom task to use XPIC(m) method on selected time steps
Introduction
The XPIC(m) method is an advanced damping method that filters out unwanted noise (in the null space) without damping out useful information. Its drawback is that it adds calculation time as m in XPIC(m) increases. In some simulations, it may not be necessary to use XPIC(m) update methods on every time step. This custom tasks lets you convert such simulations to use XPIC(m) periodically instead of on every time step.
Task Scheduling
The first step is to select default update method. Normally, the default method would be a standard FLIP method select using Damping commands be setting (fractionPIC) to 1. Next, you select an XPIC order (the m in XPIC(m)) and frequency to run the XPIC(m) calculations. In scripted files, a PeriodicXPIC custom task is scheduled with
CustomTask PeriodicXPIC Parameter periodicSteps,(stepInterval) Parameter periodicTime,(timeInterval) Parameter XPICOrder,(order) Parameter fractionPIC,(fractionPIC) Parameter verbose,{verbose}
In XML files, this task is scheduled using a <Schedule> element, which must be within the single <CustomTasks> block:
<Schedule name='PeriodicXPIC'> <Parameter name='periodicSteps'>(stepInterval)</Parameter> <Parameter name='periodicTime'>(timeInterval)</Parameter> <Parameter name='XPICOrder'>(order)</Parameter> <Parameter name='fractionPIC'>(fractionPIC)</Parameter> <Parameter name='verbose'>(verbose)</Parameter> </Schedule>
where the parameters are:
- (stepInterval) and (timeInterval) - sets the frequency for running XPIC(m) calculation. The (stepInterval) option sets number of time steps between each XPIC(m) calculation while (timeInterval) sets frequency using a time (in Alt Time UNits).
- (verbose) - If value is greater than 0.99, it will print the new time step whenever it changes by a factor equal to value of (verbose). For backward compatibility, if entered value is 1, the report factor will set to 2 fold change in time step. If value is less than 0.99, the new time step is silently changed. The default it 0.
- (Cvel) - Enter a different Courant–Friedrichs–Lewy factor to use for particle velocities. This parameter is optional. The default is for (Cvel) to be the same as the input Courant–Friedrichs–Lewy (C).