Accumulator Theory: Domains
The Accumulator (Domain) node is used to transfer information from grains to the domains they occupy or pass through. Each Accumulator defines a variable, called the accumulated variable, in the selected domains. The accumulated variable is discretized using constant shape functions, so its value is uniform over every mesh element and can be discontinuous between adjacent mesh elements.
The name of the accumulated variable is specified in the Accumulated variable name field in the Accumulator Settings section of the settings window. The default variable name, rpd, will be used in the remainder of this section when referring to the accumulated variable.
Accumulator Type
The options in the Accumulator type list are Density and Count. If Density is selected, the source term is divided by the area or volume of the mesh element when calculating each grain’s contribution to the accumulated variable. If Count is selected, no division by the area or volume of the mesh element occurs.
The equations in the following section are valid for the Density type. The corresponding value of the accumulated variable for the Count type is
where V is the mesh element volume (in 3D) or area (in 2D).
Accumulation over Elements
When Elements is selected from the Accumulate over list, the value of the accumulated variable in a mesh element is the sum of the source terms Ri evaluated for all grains in that mesh element:
where N is the total number of grains in the element and V is the area (2D) or volume (3D) of the mesh element. In other words, the contribution of each grain to the accumulated variable is distributed uniformly over the mesh element the grain is in, regardless of the grain’s exact position within the element.
If Elements and time is selected from the Accumulate over list, then the sum of the source terms for the grains in the mesh element is used to define the time derivative of the accumulated variable, rather than its instantaneous value:
Thus, the value of the accumulated variable depends on the time history of the grains in the mesh element, instead of the instantaneous positions of the grains. As each grain propagates, it will leave behind a trail based on its contributions to the accumulated variables in the mesh elements it has traversed. The algorithm for accumulating over time takes into account the fraction of a time step taken by the solver that the grain spends in each mesh element, even if it crosses between elements during the time step.