In the European Union, there is such a normative document as Eurocode EN 1993-1-9-2009, which regulates the methodology for assessing fatigue for various structural elements.
There are also examples of the application of this document.
An example will be given below for evaluating the fatigue of a K-type joint based on the Eurocode (mainly fatigue curves) using Fidesys.
The figure below is a screenshot of a table showing an example of a K-type joint.
The screenshot below shows a set of fatigue curves for the normal stress range from the Eurocode.
Below is a set of fatigue curves for the shear stress range.
The K-type joint considered in the example belongs to category 45, for which you can extract data with the corresponding fatigue curve and use EXCEL to obtain an approximation function (add a trend line and check the box "show equation on diagram") for further use in calculations (we will consider an example for normal stress).
In the next step, we build a geometric and finite element model in Fidesys in order to obtain the stress range and make estimates.
The calculation will be done in two steps. At the first step, we will obtain the results for stresses for the positive direction of the force action, at the second - for the negative one, and then add their nodal values in the postprocessor using a special programmable filter, and then further process them to obtain the value of the allowed cycles.
This is what the result will look like. Zones with different allowable cycles will be color coded depending on the stress range. Below is an example for 1 principal stress.
Below is a model script with solver settings that allows you to create and load the described model.
reset create Cylinder height 0.8 radius 0.1 create Cylinder height 0.8 radius 0.092 subtract volume 2 from volume 1 create Cylinder height 0.8 radius 0.05 create Cylinder height 0.8 radius 0.045 rotate Volume 3 4 angle 45 about X include_merged Volume 3 4 copy reflect z Surface 7 copy Surface 1 copy webcut volume 3 4 5 6 with sheet body 7 delete volume 5 3 14 9 delete volume 6 11 delete volume 4 16 subtract volume 15 from volume 1 13 subtract volume 12 from volume 10 1 delete body 7 webcut volume 10 13 with sheet body 8 delete body 8 unite volume 17 1 unite volume 18 17 imprint volume all merge volume all #to create an initial crack, do: uncomment the three lines below #brick x 0.3 y 0.1 z 0.005 #move Volume 19 y -0.11 z 0.025 include_merged #subtract volume 19 from volume 18 volume all scheme tetmesh volume all size auto factor 4 mesh volume all create material 1 from 'Steel' set duplicate block elements off block 1 add volume all block 'Block 1' material 1 cs 1 element solid order 1 create displacement on surface 57 dof all fix create distributed force on surface 9 force value 2000000 moment value 0 direction 0 0 1 specific create distributed force on surface 9 force value 2000000 moment value 0 direction 0 0 -1 specific analysis type static elasticity dim3 static steps 2 modify distributed force 1 step 1 modify distributed force 2 step 2 static results everysubstep 1 output nodalforce off energy off midresults on record3d off material off fullperiodic off calculation start path 'C:/Users/User/Documents/CAE-Fidesys-4.1/fidesys01.pvd'
As a result of applying the script, you should see the following on the command line.
Then you can go to the postprocessor Fidesys Viewer to apply the necessary filters. To do this, go to "Mode - Results" and click "Open last result".
The post processor will open. You will need to delete the opened result and open its individual components manually.
Choose "File - Open".
Open the folder with the results.
With "Ctrl" held down, select both results and click "OK".
Holding down "Ctrl", select the two opened results, and then the programmable filter.
Next, in the window that opens from the bottom, add the code given below.
input0 = inputs[0] input1 = inputs[1] sum = abs(input0.PointData["Stress"])+abs(input1.PointData["Stress"]) data = (6e28)*pow((sum),-2.939) output.PointData.append(data, "Cycles")
This code creates the variables input0 and input1 to contain data from the result sets. Then the code sums up the modules of the elements of the stress arrays i.e. stresses XX at the nodes of the first set of results with stresses XX at the same nodes of the second set of results, etc. for all components. Then the total result is processed inside the S-N fatigue curve approximation function - the summed stresses at the nodes are substituted instead of "x" in the formula obtained above in EXCEL.
Then click "Apply". After that, let's start processing the output of the results..
First you need to open the Color Map Editor.
Then from above select the results "Cycles" and, for example, the 7th component.
Then, in the Color Map Editor, check the box "Use log scale ..." and click on the circle on the right in order to invert the color. Thus, we will make the zones with the smallest allowable number of cycles highlighted in red.
Below is an illustration of the correspondence of the result numbers in the Cycles set with the corresponding stress, which are used for them as input data..
If you need to take into account any factors, for example - a reduction factor to obtain a reduced equivalent range of cycle stresses for cases where part of the cycle or the entire cycle is compressive in elements without welding or with welded joints with completely removed internal residual stresses.
The code will need to make a minimal change to meet the requirements.
input0 = inputs[0] input1 = inputs[1] sum = abs(input0.PointData["Stress"])+0.6*abs(input1.PointData["Stress"]) data = (6e28)*pow((sum),-2.939) output.PointData.append(data, "Cycles")
If the cycle is only tension and the amplitude of the range is defined as the maximum value of the stresses,
then you can use the "Calculator" filter.
There, in the "Scalars" you need to select the required value, which will determine the range, for example 1 principal stress.
Then use the same formula for the fatigue curve that was used previously, but reassigning the "pow" symbols according to the rules of the calculator and putting the stresses in question in parentheses.
Then click "Apply".
Then you need to select "Result" from the top in the results and do similar manipulations to invert the color scheme and turn on the logarithmic scale, after which you will see the result.