TrackError Custom Task
A custom task to archive simulations results compared to theoretical predictions
Introduction
This tasks can compare particle values to a theoretical model and archive some metric for accuracy of the simulation. It is useful for tracking convergence of MPM simulations.
Simulation Error Metrics
Imagine a generic distance from particle value to a theoretical expectation for that value equal to [math]\displaystyle{ |x_p| }[/math]. For example, the distance could be difference between particle stress in the x directions and expected stress:
[math]\displaystyle{ |x_p| = |\sigma_{p,xx} - \sigma_{xx}({\rm theory})| }[/math]
If the particle value is a vector, the distance would be a vector distance. For example, velocity distance would be:
[math]\displaystyle{ |x_p| = \sqrt{\bigl(\vec V_p-\vec V({\rm theory})\bigr)\cdot\bigl(\vec V_p-\vec V({\rm theory})\bigr)} }[/math]
The P-norm for a give distance is defined as:
[math]\displaystyle{ ||x||_P = \left( \sum_{p=1}^{N_p} |x_p|^P\right)^{1/P} }[/math]
where [math]\displaystyle{ N_p }[/math] is the number of particles. The root-mean-squared distance is defined as:
[math]\displaystyle{ {\rm RMS} = \sqrt{{1\over N_p} \sum_{p=1}^{N_p} |x_p|^2} }[/math]
This task can archive mean P-norm values and RMS distances for any entered function of [math]\displaystyle{ |x_p|^P }[/math]. These mean values can be for each time step or cumulatively averaged over all time steps.
Task Scheduling
In scripted files, a TrackError custom task is scheduled using
CustomTask TrackError Parameter archiveTime,(timeInterval) Parameter firstArchiveTime,(firstTime) Parameter P,(Pvalue) Parameter Cumulative,(cumulative) Parameter function,(xpPexpr) . . .
In XML files, this tasks is scheduled using a Schedule element, which must be within the single <CustomTasks> block:
<Schedule name='TrackError'> <Parameter name='archiveTime'>(timeInterval)</Parameter> <Parameter name='firstArchiveTime'>(firstTime)</Parameter> <Parameter name='P'>(Pvalue)</Parameter> <Parameter name='cumulative'>(cumulative)</Parameter> <Parameter name='function'>(xpPexpr)</Parameter> . . . </Schedule>
where the first two parameters, both of which are optional, are
- (timeInterval) - Enter the time interval (in alt time units) between calculations of error metrics. If this parameter is omitted, the calculations are done on the same steps as the particle archives.
- (firstTime) - Enter the time to start error metrics (in alt time units). After this time is reached, subsequent archives will be spaced by the entered