**process multirange#

Description#

This post-processor can be used to analyze complex tridimensional loading paths in order to extract and count cycles (rainflow counting). It can only be applied to tensorial input variables.

The method is based upon multisurface theories of plasticity to detect closed loops (cycles) in the input stress or strain histories and their corresponding amplitude. It is an extension to the general case of multiaxial non-proportional loading paths of the well-known “rainflow technique” conventionally applied to uniaxial loadings. This post-processor can be used in conjunction with post-processors post_fatigue_rainflow (calculation of fatigue life for each sub-cycle) and rainflow (cumulation of damage generated by each sub-cycle).

Syntax#

**process multirange \(~\,\) *var name [ *center ] [ *reverse number ]

name

is the input (tensorial) variable which is the subject of the range calculation.

number

is the maximum number of sub-cycles given as output (default value is 3). The code gives a warning in the case where the number of cycles detected is greater than the one requested for output.

With the option *center, the code sends back additionally the center of the sphere containing the loading path associated with each subcycle.

The output is the following:

  • ncyc the number of cycles detected. If the algorithm detects more cycles than the number requested by the *reverse number keyword, the code return ncyc = number.

  • for each cycle i:

    • D\(i\)name the amplitude of cycle \(i\) for input variable name,

    • ni\(i\)name is the number of the output map (within the ones selected by the **output_number command) corresponding to the beginning of cycle \(i\),

    • nf\(i\)name is the number of the output map (within the ones selected by the **output_number command) corresponding to the end of cycle \(i\),

    • optionally if the *center keyword is included, the components of tensor C\(i\)name at the center of the sphere including the loading path for cycle \(i\).

Output cycles are stored by decreasing values of amplitude, such that the most meaningful cycles are included even if the number of requested cycles (specified by the *reverse keyword) is smaller than the one detected by the rainflow algorithm. In the the event where the number of requested cycles is larger than the one detected, all corresponding quantities are zero.

Example#

../../_images/multirange.svg

Applying the following commands to the loading path of the above figure:

**output_number 10-14
**process multirange
  *var X
  *reverse 3
  *center

will yield as output:

  • ncyc = 2

  • D1X = 200, ni1X = 1, nf1X = 4, C1X11 = 100, C1X22 =0 …

  • D2X = 100, ni2X = 1, nf2X = 3, C2X11 = 150, C2X22 =0 …

  • D3X = 0, ni3X = 0, nf3X = 0, C3X11 = 0, C3X22 =0 …