**process cycle_projection#

Description#

This post is used when we have a multiaxial loading which is close to proportional and it is desired to see the primary stress-strain hysteresis loops. The user will pick a specific point in a cyclic loading (or series of points at similar conditions) and the requested tensors will be projected onto the eigen directions determined at that point.

The user can specify the point from which we take the eigen values/vectors from:

  • A map number can be given. This will be indexed base 1 from the start of the selected cards in the active post section (that is if we select maps 20-200, a selection of 20 will be number 40 in the global maps).

  • A time can be given. If the time is between 2 maps the values will be interpolated.

  • The post calculation uses a POST_CYCLE_TOOL object to determine the cycle positions, from which we can use a cycle number combined with start/mid/end tokens. The default is this method, with cycle 1/mid selected.

Using the eigen vectors of the ordered principal calculation of the given *primary_variable selection we project the selected tensors into that frame and output them with either the given list of output names, or as tname_cpj. If the primary tensor is desired as output then it should also be given in the *var listing.

Syntax#

**process cycle_projection tool-type \(~\,\) *primary_variable name \(~\,\) *var name1  name2  …  nameN [ *output name1  name2  …  nameN ] [ *time time-val ] [ *map map-index ] [ *cycle num (start``|``mid``|``end) ] [ *remap_each_cycle ]

Note

The POST_CYCLE_TOOL expects that temperature be defined as a field variable. If it does not, one can use the make_field local post computation in order to do so.

Example#

A common usage is to use the hot_spot post computation to identify critical regions, and then study the mechanical cycles at that location.

In this example we have a nset named min_life.nset stored via a hot_spot. That nset is split in the beginning mesher command **split_nset run when loading the data source so we can specify node locations symbolically. The worst case node is then named min_life_1.

Note that the tmf keyword after the **process cycle_projection command identifies the type of cycle identifying tool to use. Currently the reader should refer to the sehitoglu life prediction methods for a discussion. Future versions of the documentation will have a more expansive discussion on that.

****post_processing
  ***data_source Z7
    **open zpost_matsim.utp
    **nset min_life
     *nodes_in_file min_life.nset
    **split_nset min_life

  ***local_post_processing
     **output_number 1-9999
     **file node
     **nset min_life_1

     **process cycle_projection tmf
      *primary_variable sig
      *var   sig eps_me evi
      *out   sig_x eps_x evi_x
      *cycle 1 mid
      *remap_each_cycle mid
      *total_strain_for_range

  ***global_post_processing
   **process curve curves_1.test
    *precision   3
    *node min_life_1  eps_x11 eps_x22 eps_x33 eps_x12 eps_x23 eps_x31
                      sig_x11 sig_x22 sig_x33 sig_x12 sig_x23 sig_x31
                      evcum  temperature
****return