compute crosssection command
Warning
GPU support for this command has not been tested and may not work as expected.Syntax
compute ID group-ID crosssection general_keyword general_values dim d min mi max ma n_cuts nc cut_thickness ct keywords value ...
ID, group-ID are documented in compute command
crosssection = style name of this compute command
general_keywords general_values are documented in compute
skin = obligatory keyword
s = skin used for coordination number calculation
dim = obligatory keyword
d = axis of cross-sections (any x,y,z)
min = obligatory keyword
mi = lo value for cross-sections (length units)
max = obligatory keyword
ma = hi value for cross-sections
n_cuts = obligatory keyword
nc = number of cross-sections to be evaluated
cut_thickness = obligatory keyword
ct = obligatory keyword
zero or more keyword/value pairs may be appended
keyword = file, region or angle
region value = region-ID region-ID = ID of region atoms must be in to be included in cross-section file value = filename v_name = filename to write data to angle value = yes or no
Examples
compute chull all crosssection skin 0.003 dim z min 0.0 max 0.05 n_cuts 3 cut_thickness 0.005
Description
Define a computation that calculates cross-sectional areas of medium to densely packed particle beds. This is done for multiple cuts in a defined dimension, as defined by keyword dim. The number of cross-sectional cuts is defined by keyword n_cuts, the location of the cross-sections are defined by min and max. Example: If dim = x, n_cuts = 3, min = 0.5 and max = 0.7, then cross-sectional areas are calculated for x = 0.5, x = 0.6, and x = 0.7.
Mathematically, the 2D convex hull of all particles is included, if the normal distance to a cross-section plane is less than cut_thickness. Example: If cut_thickness = 0.05, in the above example, all particles with 0.45 < x < 0.55 would be included in the first cross-section, all particles with 0.55 < x < 0.65 would be included in the second cross-section, etc. Note that particles are ONLY INCLUDED IF their coordination number (number of contacts) is 2 or higher. This is to avoid that only particles which are part of a packed bed are taken into account. The coordination number is calculated based on the skin keyword, i.e. if two particles are separated by a distance less than the sum of their radii + skin, then the particle pair is counted for the coordination number. If the cut_thickness is larger than the cut distance (which is defined by (max-min)/(n_cuts-1)), a warning will be shown and the cut_thickness value is limited to this cut distance.
The optional keyword file can be used to write out the results to a text file, following this format:
coo_1 area_1 r_1
coo_2 area_2 r_2
...
where the coo_X values are the dim = const coordinate values, area_X are the corresponding cross-section areas, and the r_X values are the radii of the area-equivalent circle.
The optional keyword region can be used to restrict the calculation to a certain region.
The optional keyword angle triggers the calculation of the average angle formed by the different cross-section cuts.
Output info:
This compute calculates a local vector. The length of the vector is equal to n_cuts, and each value is equal to the cross-sectional area for this cut. The vector or array can be accessed by any command that uses local values from a compute as input. If the angle keyword is active, an additional vector entry containing the angle is available. See this section for an overview of Aspherix® output options.
For information on the units of the output, see above.
Restrictions
Can only be used together with a granular pair style.
Default
angle off