Linear and non-linear analysis of structures and analysis of results. Evaluation of analyses performed and problem solving

Hello everyone,

I have been following this forum for some time and have learned a lot from it. Although I deal with engineering problems on a daily basis, I am not an FEM expert. I would appreciate your feedback on the correctness of my approach, the quality of the performed FEM analyses, and the validity of the conclusions. Below is a lengthy description of the problem with details for those interested:

Long_discription.zip (2.2 MB)

The subject of this study is a real structural failure that occurred during operation, involving a fracture near of a welded joint. Three FEM models were analyzed:

· Solution A – original design (failed in service),

· Solution B – reinforced welded joint,

· Solution C – reinforced joint with reduced number and diameter of relief holes.

All files PMX, results in doc:

Linear for all solutions, non-linear, and quasi-plastic limit analyses for A solution were performed. The results suggest that the structure does not fail due to static overload, and fatigue is considered the most probable failure mechanism. That was confirmed after initial inspections.

Below are the questions I would like to discuss, along with the relevant data:

1. Is the mesh quality sufficient?

2. Why does the Quasi-Plastic Limit Analysis (A) show the highest plastic strain (PE = 0.284) in the displacement area rather than near the welded joint (PE = 0.227)? Is this result correct?

3. Have the analyses been performed correctly?

4. In your opinion, are the conclusions valid?

5. Are there any serious errors in the analyses?

6. What suggestions would you give to improve such analyses in future steel structure assessments?

Mesh

Mesh_Salome_graph.zip (190.0 KB)

Damage image

Results of the Quasi-Plastic Limit Analysis in the graphs

This is my first post on this topic, so please bear with me and feel free to offer suggestions on how to improve future posts.

Best Regards

This should be determined by a mesh convergence study: https://wiki.freecad.org/FEM_Geometry_Preparation_and_Meshing#Mesh_convergence_studies

But I would advise more localized refinement.

Artificial stress/strain peaks may occur in boundary condition regions. You can either ignore that or model supports in more realistic way (depends on how it works in real life) - e.g. use contact or coupling constraints and limit the BC to a minimum area and range od DOFs.

This comes down to pretty much the same - whether something is wrong (and what) in your setup in our opinion. Here are some additional questions and remarks from me:

  1. How did you obtain and process the data for the plasticity curve ? It should be true stress vs true (logarithmic) plastic strain. Therefore, it should start from yield stress vs 0 (plastic) strain.
  2. Is fixed BC a reasonable approximation of the real life support ?
  3. What about the accuracy of the displacement BC (mentioned also above) ?
  4. Exactly how did you obtain the quantities for the two XY plots ?
  5. Does the real life failure look like fatigue fracture ? If you are interested in fatigue calculations, you could try open-source Fatlab software: Fatlab download | SourceForge.net
  6. Thin-walled structures usually should be analyzed with shell elements at least away from important details and complex regions of interest. Any unnecessary details should be removed - I assume you know that, but it’s important to highlight it.
  7. You could try the submodeling technique to further refine the mesh and obtain more accurate results in the critical area: https://www.youtube.com/watch?v=RNVE1rk1yps

Thank you for your prompt reply. I ran several tests for different mesh settings and the results were consistent.

  1. I used https://automeris.io/wpd/ for the True stess strain data.
  2. It is only a simplification.
  3. In reality, it is a type of claw coupling. Do you think this method of fastening would be more correct?

  1. Plots XY are based on node data from analysis transfered to Excel.

  2. Good point. I am familiar with Fatlab and intend to use it.

  3. I know about that but this reinforced area was too dificult to prepare. At the same time, there are areas of greater thickness in some areas of the model.

  4. I tested the solution using a submodel. Maybe I will come back to this method. I follow your YouTube channel. It’s great.

To digitize a plot ? Ok, just FYI, I use https://plotdigitizer.sourceforge.net/

So you may only need to calculate plastic strain from total strain: Converting Engineering Stress-strain to True Stress-strain in Abaqus

Would be good to see a photo of what it looks like in reality. But I assume you don’t need very accurate results there so only the stiffness of the support should be represented properly (if you can estimate it, PrePoMax has surface spring and compression only constraints to simulate flexible supports).

Ok, keep in mind there’s nodal averaging and extrapolation involved (so nodal results can be e.g. higher than the plasticity definition allows). Stress and strain results are most accurate at integration points (CalculiX outputs them to .dat file if *EL PRINT is used).

Great, it can be a very interesting study then. A bit more complex if it fails in the low-cycle fatigue regime, though.

I see. Submodeling could be really beneficial for such cases. You could refine the mesh significantly in the area of that failing connection without increasing the need for computational resources too much.

Thanks, I’m really glad you like the tutorials. Btw. I’m also Polish, but let’s write in English here (of course, we can talk in Polish on the forum’s private chat).

Firstly, congrats on the detailed post, it really helps.

I’ve done a linear statics run with your setup, but with a fast mesh, a quick & dirty. A few notes on linear FEA:

  • stiffness is not quite mesh dependant, and doesn’t need a fine mesh, as long as you use high-order elements, which you did. So your node count is overkill, you don’t need a fine mesh for the stiffness side of things; certainly not for the main tube.
  • Stress is mesh dependant, but very localised around fillets and blends, nearly always. You just refine the fillets when planning the mesh after a fast test model to show where local hot spots are.

Your stress - strain material curve doesn’t have a zero PE point, nor a 0.2% one (?), typically this is the yield value (Proof stress) to use. So I’ve assumed a Yield = 200MPa.

Here is the fast mesh with von Mises for your linear run. You set your max value in scales to Yield (200MPa). Then you know that joint is in trouble w/out any non-linear mats/solve. You reinforce the tube and rib the welded area. Your photo doesn’t show to me a failure on the weld, but on the main tube thickness being too thin, it rips… Hence the ribs solution works, but you could also brace the small area with a thicker short tube to the weld?

This is just a quick & dirty, let me know if I missed anything.

All I did in your meshing setting is this:

(just realised I forgot to set to ‘yes’ to project midside nodes on high-order elems. Sorry, that must be on to get even better stress results).

Then hit run.

In addition, with linear models you ignore stress results > yield, like I tried to explain in my post. However, you do have the Neuber correction available to reuse linear stresses and estimate yield stress values for some metals. Look it up, here is a link on that:

Would be interesting to compare the deflections or natural frequencies just in case. Sometimes, there’s a surprising effect on the latter (however, we are not talking about mode-based linear dynamics here so it’s less relevant).

Or use submodeling as discussed above. Then the whole initial model can be less refined than ultimately needed.

Yes, that’s what I noted in the first post and asked the OP to make sure the definition is true stress vs true plastic strain.

Initial linear run can definitely help localize the issue, but then I would still check the nonlinear part.

Some fatigue software also offers it for localized yielding. I wonder if Fatlab does…

I decided to check it out of curiosity. This is with the original mesh:

This is with the coarser mesh (same settings as yours):

So it’s ok in this case.

Thanks for the checks.

I meant for all things statics.

Dynamics require to use the bendwave equation vs MAX freq of interest on each part to plan the mesh properly. Different subjects.

However, for low freq modal check, a statics stiffness mesh with high-order elements, tends to be more than plenty for a 1st 6 natural freqs on most structures. But for detailed forced response linear dynamics the mesh must capture the MAX freq of interest, which is not related to static meshes.

High-order (tet10) 10mm (crude guess) do the job for static stiffness most of the times. You get a node every 5mm. Then refine on fillets for stresses after a 1st statics check run. If model is small (like this one) in a single model is fast. Otherwise, indeed, sub-modelling is the way to go; mainly to get several areas in a single submodel run.

Yeah, that’s another criterion. Abaqus has a really good chapter on that under “Coupled Acoustic-Structural Analysis”. Usually, users only check this for acoustic analyses. And they mostly use linear hexahedrons (although I’ve also seen coarse C3D4 meshes and attempts to use them for linear dynamics).

Some problems can be more tricky to mesh when e.g. linear dynamics (SSD) is followed by vibration fatigue calculation.

Yes, in acoustics we solve for 1 DoF, which is a scalar (ac pressure). Then, low order solids work, like in thermal jobs, 1 scalar, temperature.

My point is only for the structural parts, the bendwave wrt mats props & thinnest wall of interest. It’s a hand calc to get elem size in mesher for NVH. So in coupled acoustics- structural we plan 2 separate mesh sizes (domains) wrt MAX freq. Well pointed out, they all have separate tickboxes!

Abaqus even has a built-in check for that frequency criterion:

But going back to the main topic, Abaqus/CAE also has a tool to prepare input for *ELASTIC and *PLASTIC cards from a complete raw stress-strain curve - it can convert from nominal to true stress/strain, determine Young’s modulus (if you select the yield point), generate plastic data point and fill the table in the material definition with them. Of course, it can all be done rather easily with a spreadsheet or script, but such ready-made tools may also be handy.

Also, maybe PrePoMax could warn the user if the first entered data point has a non-zero strain. Abaqus shows an error, but CalculiX is silent about it, so a warning would be sufficient:

image

1 Like

Hello, thank you for this plotdigitalizer. I am trying to use it now, but I cannot find a closer look at the tracking points on the graph, and the points are not accurate.

Here is a screenshot from webplotdigitaliser:

  1. I do not have access to Abaqus. Maybe there is some legal access for free.
  2. Yes, I need to prove the strength of solution C in the context of a safety factor of 1.5 (tensile strength).
  3. Unfortunately, I am not that familiar with prepomax, I do not know how to obtain these results. I need to find something on the forum or in the web. (CalculiX outputs them to .dat file if *EL PRINT is used)
  4. I want to analise solution A in fatlab only for my curiosity and knowlage, see point 3.
  5. I have a problem with submodel. There were sudden increases in stress at the boundary of the global model relative to the submodel. If I find the right model, I will try to post it here. I probably made a mistake…
  6. Without these tutorials, it would be difficult for me to get started with PrepOMax. By the way, I really admire manual calculations (Smath, etc.). At work, I have access to calculation documentation that was done manually in the past. I will contact you privately as soon as I finish other work. It will be great

I appreciate that. Thank you for your suggestions, analyses and insights. You are right about the strain data. I do not have perfect data, and when I use digital 1020 data charts, I never start from a perfect “0”. Please refer to the post above. As I wrote earlier, the actual plasticity values are also not perfectly correct, because the structure was originally welded using 20 A steel. In the meantime, my colleagues from the design office are changing the material to 18G2A (S355).

Your suggestion to insert a sleeve into the centre of the pipe to reinforce the area where the arm connects to the pipe is very good. However, the validation process is ongoing. Solutions B and C have already been used and have proven to be fault-free over many years of operation.

Thank you for the quick summary.

That’s a very interesting statement:(just realised I forgot to set to “yes” to project midside nodes on high-order elems. Sorry, that must be on to get even better stress results).I haven’t used it before. I will try those settings.

At the moment, I need to ask about the quad-dominated mesh option. Does it really work on such complex geometry? I was sure it could lead to errors like negative Jacobians or something like that. This is, of course, just a digression on the subject of mesh options.

This is a very interesting topic. Thank you very much. I haven’t heard about it. I will look for more information on this subject.

Good suggestions and summary.

Some fatigue software also offers it for localized yielding. I wonder if Fatlab does…

Now I have problems starting FatLab with MATLAB runtime because it does not want to start with version:

image

Maybe I m doing something wrong. I will search for some solution.

Yeah, there are only Zoom Out/In buttons. Maybe there’s better open-source tool for that, I stick to this one, but I don’t need it that often.

Yes - Learning Edition, but of course it has some limitations and can’t be used for commercial stuff. Excel should suffice though.

In PrePoMax, you can request it as history output this way:

Me too, it’s a must in my tutorials. But I switched to Calcpad some time ago.

For solids, hexahedral meshes are pretty much always desired, but they are mostly applicable to very basic shapes created by extrusion, revolution or sweep (or offset from shell quad mesh). Plus for subvolumes having 5 or 6 faces with 3 or 4 edges each. So only really simple models and ones that you can split or simplify into such shapes. Here are the main rules of hex meshing in PrePoMax: Summary of Gmsh hex meshing rules

Hi @Krzysztof.B I’m curious about the report of the failure mode. Based on what can be seen in the picture , the base tube has not even deform and also looking at the paint It looks like a full tear as a unit more than a progressive fissure. Perhaps a poor weld with lack of fusion ? Looking at the defomed shape that connection seems to work in shear not tension.You are appling torsion right?

Interesting point, would be usefull to cut both parts through the weld seam, polish and reveal with acid to see the heat affected area in the yellow tube and confirm if the weld has good penetration or not. The weld seam has been ripped off from the yellow tube very clean!

if the thickness is uniform I have had some success by splitting the solid in CAD and isolating the out skin then using meshing this with shell gmesh and then thicken shell

In this case it appears the thickness is not uniformed. In some software selected surfaces of the mess can be extruded - is there a possibility prepomax could have this potential - this would make this type of shape meshable with bricks