- X.D.1 List of the predefined criteria
- X.D.1.1 ``HoneycombAirbusMoS'' criterion
- X.D.1.2 ``HoneycombAirbusSR'' criterion
- X.D.1.3 ``VonMisesMoS'' criterion
- X.D.1.4 ``VonMisesSR'' criterion
- X.D.1.5 ``SGI_SR'' criterion

- X.D.2 User predefined criteria

X.D Predefined criteria

The predefined criteria source code is located in file ``SRC/Result/predfinedCriteria.cpp''. So far, five criteria are defined. They are presented in section X.D.1.

Note that the user can define its own criteria, and some preparatory work has already been done. Some explanation is given in section X.D.2.

X.D.1 List of the predefined criteria

Only five predefined criteria are available at the moment. They are presented and discussed in the sub-sections that follow. Additional information on what is done in the criterion can be obtained by reading ``SRC/Result/predfinedCriteria.cpp'' source file.

X.D.1.1 ``HoneycombAirbusMoS'' criterion

This criterion is used to calculate honeycomb core margin of safety according to the so-called ``Airbus'' core failure criterion than combines the two components of out-of-plane stress tensor. The margin of safety is calculated according to the following expression:

in which and are the honeycomb longitudinal and transversal shear components of Cauchy stress tensor and and the corresponding allowables.

The arguments of the criterion are given in Table X.D.1. The method returns an Array of 8 elements according to Table X.D.2:

- The four first elements correspond to the Result key on which the minimum margin of safety is calculated.
- Then, the two components of the out-of-plane shear stress at critical location is given.
- Then, one gives the critical (minimum) margin of safety.
- The last element of the Array is a Result object that contains the margins of safety element-per-element, node-per-node...

.

Pos. | Name | Type | meaning | can be modified? |

1 | dB | DataBase | DataBase (or derived) | NO |

2 | fos | Real | factor of safety | NO |

3 | allL | Real | shear allowable in L-direction | NO |

4 | allW | Real | shear allowable in L-direction | NO |

5 | stressRes | Result | Cauchy Stress Tensor | NO |

.

Pos. | Name | Type | meaning |

1 | ElemId | Integer | Critical Element ID |

2 | NodeId | Integer | Critical Node ID |

3 | LayerId | Integer | Critical Layer ID |

4 | SubLayerId | Integer | Critical Sub-Layer ID |

5 | sigLmax | Real | L OOP shear component of stress tensor at critical location |

6 | sigWmax | Real | W OOP shear component of stress tensor at critical location |

7 | mosMin | Real | Critical margin of safety |

8 | mosRes | Result | All the margins of safety that have been calculated |

X.D.1.2 ``HoneycombAirbusSR'' criterion

This criterion is used to calculate honeycomb core margin of safety according to the so-called ``Airbus'' core failure criterion than combines the two components of out-of-plane stress tensor. The margin of safety is calculated according to the following expression:

in which and are the honeycomb longitudinal and transversal shear components of Cauchy stress tensor and and the corresponding allowables. Actually, one calculates a strength ratio instead of a margin of safety. The relation between strength ratio, reserve factor and margin of safety is as follows:

This leads to the following expression for the strength ratio:

(The display of strength ratios instead of margins of safety allows usually a better identification of critical areas. This is true,for example, when results are saved in GMSH format.)

The arguments of the criterion are given in Table X.D.3. Compared to the ``HoneycombAirbusMoS'' discussed in section X.D.1.1, two new parameters are defined: ``strL'' and ``strW'' String arguments. These arguments, allow to specify the Cauchy Stress Tensor components that should be considered for and respectively. Possible values are ``XZ'', ``ZX'', ``YZ'', ``ZY'', ``XY'' and ``YX''. (This capability has been added to allow the post-processing of stress when the usual convention for honeycomb core material definition have not been followed.

The method returns an Array of 8 elements according to Table X.D.4:

- The four first elements correspond to the Result key on which the minimum margin of safety is calculated.
- Then, the two components of the out-of-plane shear stress at critical location is given.
- Then, one gives the critical (maximum) strength ratio.
- The last element of the Array is a Result object that contains the strength ratio element-per-element, node-per-node...

.

Pos. | Name | Type | meaning | can be modified? |

1 | dB | DataBase | DataBase (or derived) | NO |

2 | fos | Real | factor of safety | NO |

3 | allL | Real | shear allowable in L-direction | NO |

4 | allW | Real | shear allowable in L-direction | NO |

5 | strL | String | shear allowable in L-direction | NO |

6 | strW | String | shear allowable in L-direction | NO |

7 | stressRes | Result | Cauchy Stress Tensor | NO |

.

Pos. | Name | Type | meaning |

1 | ElemId | Integer | Critical Element ID |

2 | NodeId | Integer | Critical Node ID |

3 | LayerId | Integer | Critical Layer ID |

4 | SubLayerId | Integer | Critical Sub-Layer ID |

5 | sigLmax | Real | L OOP shear component of stress tensor at critical location |

6 | sigWmax | Real | W OOP shear component of stress tensor at critical location |

7 | srMax | Real | Critical strength ratio |

8 | srRes | Result | All the strength ratios that have been calculated |

X.D.1.3 ``VonMisesMoS'' criterion

This criterion is used to calculate Von Mises margin of safety. The margin of safety is calculated according to the following expression:

The arguments of the criterion are given in Table X.D.5. The method returns an Array of 7 elements according to Table X.D.6:

- The four first elements correspond to the Result key on which the minimum margin of safety is calculated.
- Then, Von Mises equivalent stress at critical location.
- Then, one gives the critical (minimum) margin of safety.
- The last element of the Array is a Result object that contains the margins of safety element-per-element, node-per-node...

.

.

Pos. | Name | Type | meaning |

1 | ElemId | Integer | Critical Element ID |

2 | NodeId | Integer | Critical Node ID |

3 | LayerId | Integer | Critical Layer ID |

4 | SubLayerId | Integer | Critical Sub-Layer ID |

5 | vmMax | Real | Von Mises equivalent stress tensor at critical location |

6 | mosMin | Real | Critical margin of safety |

7 | mosRes | Result | All the margins of safety that have been calculated |

X.D.1.4 ``VonMisesSR'' criterion

This criterion is used to calculate Von Mises strength ratios. The relation between strength ratio, reserve factor and margin of safety is as follows:

This leads to the following expression for the strength ratio:

in which

The arguments of the criterion are given in Table X.D.7. The method returns an Array of 7 elements according to Table X.D.8:

- Then, Von Mises equivalent stress at critical location.
- Then, one gives the critical (minimum) margin of safety.
- The last element of the Array is a Result object that contains the margins of safety element-per-element, node-per-node...

.

.

Pos. | Name | Type | meaning |

1 | ElemId | Integer | Critical Element ID |

2 | NodeId | Integer | Critical Node ID |

3 | LayerId | Integer | Critical Layer ID |

4 | SubLayerId | Integer | Critical Sub-Layer ID |

5 | vmMax | Real | Von Mises equivalent stress tensor at critical location |

6 | srMax | Real | Critical strength ratio |

7 | srRes | Result | All the strength ratios that have been calculated |

X.D.1.5 ``SGI_SR'' criterion

This criterion is used to calculate with a single call three connection failure criteria: sliding, gapping and insert. The calculation is done by calculating strength ratios. The relation between strength ratio, reserve factor and margin of safety is as follows:

In this case, three strength ratios are calculated:

- For the sliding strength ratio, one calculates:
- The gapping strength ratio is given by:
- The insert criterion is calculated as follows:

The arguments of the criterion are given in Table X.D.9:

- First argument is a DataBase.
- The second argument is a String that corresponds to extraction method. If this argument is ``BSHFRC'' or ``BMFRC'', the forces and moments are assumed to be associated to elements. Otherwise they are associated to nodes. (This parameter influences the critical entity ID returned for each failure criterion.)
- Arguments 3 and 4 are Result objects that correspond to the connection forces and moments. Note that these Result objects can be modifed if the predefined criterion is calcualted. It is the case, for example, if the coordinate system wrt which force and moment components are expressed is changed.
- Arguments 5 to 8 define the direction vector that allows to convert vectorial forces and moments to the corresponding scalar derived components.
- Arguments 9 to 11 correspond to the safety factors of the different criteria. A negative safety factor means that the corresponding criterion must not be calculated. Then the corresponding output values are initalized to Boolean ``FALSE''.
- Arguments 12 to 16 are clearly presented in Table X.D.9

The method returns an Array of 15 elements (5 elements for each criterion):

- Elements 1 to 5 correspond to the sliding criterion and are:
- The maximum strength ratio;
- The corresponding entity ID (element or node ID),
- The corresponding connection axial force.
- The corresponding connection shear force.
- A Result object containing all the strength ratios.

- Elements 6 to 10 correspond to the gapping criterion and are:
- The maximum strength ratio;
- The corresponding entity ID (element or node ID),
- The corresponding connection axial force.
- The corresponding connection bending moment.
- A Result object containing all the strength ratios.

- Elements 11 to 15 correspond to the insert criterion and are:
- The maximum strength ratio;
- The corresponding entity ID (element or node ID),
- The corresponding connection axial force.
- The corresponding connection shear force.
- A Result object containing all the strength ratios.

.

Pos. | Name | Type | meaning | can be modified? |

1 | dB | DataBase | DataBase (or derived) | NO |

2 | extractionMethod | String | Forces and Moments extraction method | NO |

3 | fRes | Result | Vectorial Forces | YES |

4 | mRes | Result | Vectorial Moments | YES |

5 | csId | String/Integer | Reference coordinate system | NO |

6 | vx | Real | X component of connection axis vector | NO |

7 | vy | Real | Y component of connection axis vector | NO |

8 | vz | Real | Z component of connection axis vector | NO |

9 | FoSs | Real | Sliding criterion safety factor | NO |

10 | FoSg | Real | Gapping criterion safety factor | NO |

11 | FoSi | Real | Insert criterion safety factor | NO |

12 | Pmin | Real | Bolt minimum pretension for sliding or gapping | NO |

13 | Cf | Real | Friction coefficient for sliding criterion | NO |

14 | Lg | Real | Prying length for gapping criterion | NO |

15 | PSS | Real | Insert tensile allowable | NO |

16 | QSS | Real | Insert shear allowable | NO |

.

Pos. | Name | Type | meaning |

1 | ssrMax | Real/Boolean | Maximum Strength Ratio (for sliding) |

2 | ENId | Integer/Boolean | Critical Element/Node ID (for sliding) |

3 | sfAxialMax | Real/Boolean | Axial force in critical connection (for sliding) |

4 | sfShearMax | Real/Boolean | Shear force in critical connection (for sliding) |

5 | ssrRes | Result/Boolean | All the strength ratios (for sliding) |

6 | gsrMax | Real/Boolean | Maximum Strength Ratio (for gapping) |

7 | ENId | Integer/Boolean | Critical Element/Node ID (for gapping) |

8 | gfAxialMax | Real/Boolean | Axial force in critical connection (for gapping) |

9 | gmBendingMax | Real/Boolean | Bending moment in critical connection (for gapping) |

10 | gsrRes | Result/Boolean | All the strength ratios (for gapping) |

11 | isrMax | Real/Boolean | Maximum Strength Ratio (for inserts) |

12 | ENId | Integer/Boolean | Critical Element/Node ID (for inserts) |

13 | ifAxialMax | Real/Boolean | Axial force in critical connection (for inserts) |

14 | ifShearMax | Real/Boolean | Shear force in critical connection (for inserts) |

15 | isrRes | Result/Boolean | All the strength ratios (for inserts) |

X.D.2 User predefined criteria

The use that wishes to define his own criteria can do it by inserting code in ``SRC/Result/predfinedCriteria.cpp'' source file and re-compiling the library. Three areas are to be modified:

- One must first define the itneger ID that is associated to the criterion. This is done by
inserting the appropriate ``#define'' statement at the beginning. For example:
#define UD_criterion_1 20001 #define UD_criterion_2 20002 #define UD_criterion_3 20003 #define UD_criterion_4 20004 // ...

in which one assumes that all the user criteria are prefixed with ``UD_'' string. (It is advised to prefix the criteria following this kind of convention to reduce the risk of clash with someone else's criterion.) - Then, at the beginning of the ``result::calcPredefinedCriterion'' method, the mapping between
criteria names and integer IDs must be build (``critNameIds'' variable). This is currently done by the
following C++ lines:
if (bFirstHere) { critNameIds.insert(make_pair("HoneycombAirbusMoS",HoneycombAirbusMoS)); critNameIds.insert(make_pair("HoneycombAirbusSR",HoneycombAirbusSR)); critNameIds.insert(make_pair("VonMisesMoS",VonMisesMoS)); critNameIds.insert(make_pair("VonMisesSR",VonMisesSR)); critNameIds.insert(make_pair("SGI_SR",SGI_SR)); critNameIds.insert(make_pair("UD_criterion_1",UD_criterion_1)); critNameIds.insert(make_pair("UD_criterion_2",UD_criterion_2)); critNameIds.insert(make_pair("UD_criterion_3",UD_criterion_3)); critNameIds.insert(make_pair("UD_criterion_4",UD_criterion_4)); // ... }

(Here again, the User is allowed to change the criteria name and associated integer variable names.) - Finally, the new criterion ``case'' must be defined in the ``switch(critId)'' case. The case integer ID corrtrsponds to the integer value defined with ``#define'' statement. The otugh part fo the job is to write the appropriate C++ source code. We hope that the criteria already defined will be a source of inspiration for the developers.