fix calculate/dissipated_energy command
fix calculate/wall_dissipated_energy command
Warning
GPU support for this command has not been tested and may not work as expected.Syntax
fix ID group-ID fix-style fix_wall keyword value
ID, group-ID are documented in fix command
fix-style = style name of this fix command
calculate/dissipated_energy calculate/wall_dissipated_energy
fix_wall = ID of a fix wall/gran, only required if fix-style is calculate/wall_dissipated_energy
keyword/value = optional keyword-value pair
n_regions keyword = num_regions
num_regions = number of regions to calculate the dissipation in
regions keyword = list_of_regions (must follow the n_regions keyword)
list_of_regions = a list of regions in which the dissipation is calculated (additionally to global)
Examples
fix myId all calculate/dissipated_energy
fix diss_wall all calculate/wall_dissipated_energy walls
Description
Define a computation that calculates the dissipated energy of a set of contacts, i.e. either between particles or between particles and walls. Note, in order to enable the computation of these energies, the corresponding computeDissipatedEnergy flags need to be set in the pair or wall/gran styles. This fix accumulates all energy dissipated at the contact level, be it either through damping or dissipation terms or if a contact (e.g. a bond) breaks.
The wall variant requires that all_edges_corners_active is set to yes in all fix mesh/surface that act as walls in the simulation.
If the n_regions and regions keywords are used then besides computing the global dissipation this fix also computes the dissipation that happens inside of the specified regions. The number of regions given after the regions keyword must be equal to the number value specified after the n_regions keyword. See below for how the output works.
Warning
Both the particle and wall variants require a fix of the fix calculate/[wall_]elastic_energy to be defined.
Output info:
This fix calculates a global scalar which contains the value of the dissipated energy. The fix further calculates a vector with five components. These components contain (from 1 to 5)
dissipated energy due to normal contacts
dissipated energy due to tangential contacts
total power dissipated during the last timestep
power dissipated through normal contacts during the last timestep
power dissipated through tangential contacts during the last timestep
If the n_regions and regions keywords are specified the vector contains not five components but 5+6**num_regions*. After the first five components listed above each region has six output components which are given as:
total dissipated energy in region
dissipated energy in region due to normal contacts
dissipated energy in region due to tangential contacts
total power dissipated in region during the last timestep
power dissipated in region through normal contacts during the last timestep
power dissipated in region through tangential contacts during the last timestep
As an example, assuming two regions are specified, the output for the second region would be in components 12 to 17.
Besides the scalar and vector quantities described above, this command also creates some additional per-particle property vectors of size 8. These per-particle property vectors (for the particle-particle and particle-wall dissipation in normal and tangential directions) contains some auxiliary variables in the positions 1-7, which are used internally and reset to zero after each time step. However, the 8th position contains the accumulated dissipated energy for each particle. These values can be accessed through a post-processing application (Paraview), or from within the input script via the following command IDs: id_dissipated_energy (for particle-particle normal dissipation), id_dissipated_energy_wall (for particle-wall normal dissipation), id_dissipated_energy_tangential (for particle-particle tangential dissipation), id_dissipated_energy_wall_tangential (for particle-wall tangential dissipation). To compute the global sum of the accumulated dissipation values of all particles one could use something like this:
compute acc_diss_n all reduce sum id_dissipated_energy[8]
compute acc_diss_wall_n all reduce sum id_dissipated_energy_wall[8]
compute acc_diss_t all reduce sum id_dissipated_energy_tangential[8]
compute acc_diss_wall_t all reduce sum id_dissipated_energy_wall_tangential[8]
These values can be used by any command that uses a global scalar/vector value from a fix as input. See Section_howto 15 for an overview of Aspherix® output options.
Restrictions
The style related to wall - particle interface energies only works if the fix wall/gran is using meshes and not primitives. These fixes also need to be defined before the fix wall/gran. This fix is only compatible with a select few contact models. Please read the help of the corresponding contact model to see whether it is compatible.
Default
None.