FeResPost Web Site                     FeResPost Online User Manual

IV.2.4.3 Using predefined criteria

The example given in file “RUBY/EX05/calcHoneyAccel.rb” explains how a predfined criterion can be calculated. This is done for the “HoneycombAirbusSR” predefined criterion presented in detail in section X.D.1.2. The operations can be sorted in three steps:

Note that the seventh element of the “output” Array above is the only Result object created and returned by the predefined criterion. The same object could be obtained by a few ruby statements like:

        shearL=@@stressTensor.deriveTensorToOneScal("Component XZ")
        shearW=@@stressTensor.deriveTensorToOneScal("Component YZ")
        tmp=sq(shearL/allL)+sq(shearW/allW)
        sr=fos*sqrt(tmp)

The computational cost of these few statement can be very important however. Indeed, several FeResPost Result objects are created by these few lines. One creates consecutively the following result objects:

1.

One “shearL” scalar Result by extraction of XZ component.

2.

One “shearW” scalar Result by extraction of YZ component.

3.

One “shearL/allL” scalar Result (division by real value).

4.

One “shearW/allW” scalar Result (division by real value).

5.

One “sq(shearL/allL)” scalar Result (scalar Result to the square).

6.

One “sq(shearW/allW)” scalar Result (scalar Result to the square).

7.

One “tmp” Result obtained by summation of two scalar Results.

8.

One “sqrt(tmp)” Result obtaiend by extracting the square root of a scalar Result.

9.

And finally, the “SR” Result, which is the only one that shall be kept.

This means that 8 intermediate Result objects have been created and are discared at the end. Each of the 8 intermediate Result creation involves a loop on all the key-value pairs of the operations argument(s), and insertion in the new Result. If the initial Cauchy Stress Tensor Result contains a large number of key-value pairs, the computation cost of this criterion can be very important.

In the same ruby file, a second computation is provided of the Airbus criterion using the “interaction” approach:

      lStress=stress.deriveTensorToOneScal("Component XZ")
      wStress=stress.deriveTensorToOneScal("Component YZ")
      criterionData=[]
      criterionData << Post.abs(lStress)*(1.5625/2.41e6)
      criterionData << 2.0
      criterionData << Post.abs(wStress)*(1.5625/1.41e6)
      criterionData << 2.0
      #~ output=Post.calcPredefinedCriterion("Interaction_2_SR",criterionData)
      output=Post.calcPredefinedCriterion("Interaction_N_SR",criterionData)
      srMax=output[1].extractResultMax()
      maxData=srMax.getData("int","int","int","int","int")[0];

Of couse, this calculation method is less efficient than the previous one. It illustrates however the calculation of Strength Ratios via interaction of failure criteria.