CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM

SolidModels in solids4foam: linGeomTotalDispSolid vs unsLinGeomSolid?

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 27, 2024, 09:40
Post SolidModels in solids4foam: linGeomTotalDispSolid vs unsLinGeomSolid?
  #1
New Member
 
steve thomas
Join Date: Aug 2024
Posts: 3
Rep Power: 2
Steve1999 is on a distinguished road
Dear all,

I am new to cfdonline and solids4foam. I noticed that there are two solid models available in solidModels in solids4foam: linGeomTotalDispSolid and unsLinGeomSolid. Upon comparing their C and H files, I observed that the latter includes an additional operation, correct(sigmaf_). Although the description provides a brief overview, I would appreciate a more detailed explanation. Could anyone please elaborate on the algorithmic differences between these two solid models and the reasoning behind their design? What are the typical use cases for each model? Are there any specific scenarios where one is preferred over the other?

Additionally, are there any relevant literature or references that anyone could recommend for further reading on the unsLinGeomSolid model? I would greatly appreciate any guidance that someone can offer.

PS: Can I incorporate the correct(sigmaf_) function into linGeomSolid?

Best,
Steve
Steve1999 is offline   Reply With Quote

Old   August 28, 2024, 09:36
Default
  #2
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,091
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Hi Steve,

The difference between linGeomTotalDispSolid and unsLinGeomSolid is how they calculate the displacement gradient at the cell faces.

In linGeomTotalDispSolid, the displacement gradient is calculated at the cell-centres and interpolated to the faces. The resulting discretisation is unstable and a Rhie-Chow diffusion stabilisation term is added to the momentum equation to resolve this.

In unsLinGeomSolid, the displacement gradient is calculated directly at the faces, where the normal component is calculated using a compact molecule (owner and neighbour values) and the tangential gradient is calculated using the Gauss method on the face and the vertex displacement values. The vertex displacement values are calculated by interpolating from the cell centres using a least squares method.
The resulting discretisation is stable and does not need additional stabilisation like Rhie-Chow, although it can be added if desired.
The "uns" prefix comes from "unstructured", as the method was initially created (by Zeljko Tukovic, Zagreb) with the goal of being more accurate on unstructured meshes.

In terms of their relative merits, unsLinGeomSolid is more accurate than linGeomTotalDispSolid. Also, unsLinGeomSolid should provide second-order accuracy for the maximum and average discretisation errors in displacement and stress, whereas linGeomTotalDispSolid is likely only second-order for the average stress errors.
However, unsLinGeomSolid is approximately twice as slow as linGeomTotalDispSolid, primarily due to the cell-to-point interpolation. In addition, they may display different parallel scaling behaviour.
bigphil is offline   Reply With Quote

Old   August 28, 2024, 11:08
Default
  #3
New Member
 
steve thomas
Join Date: Aug 2024
Posts: 3
Rep Power: 2
Steve1999 is on a distinguished road
Hi Philip,

Thank you for your detailed response. I was wondering if it's possible to learn the relevant theoretical knowledge through literature and books. For example, the work by Zeljko Tukovic that you mentioned. Do you have any recommendations?I'm quite interested in this topic, and I'd like to dive deeper.

Additionally, I've noticed that for some problems, using an incremental unknown solidmodel, such as linGeomSolid, seems to yield better results. Would it make sense to add the correct(sigmaf_) function to linGeomSolid?
Steve1999 is offline   Reply With Quote

Old   August 28, 2024, 11:21
Default
  #4
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,091
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
The unsLinGeomSolid solver is described in https://hrcak.srce.hr/206941.

Sure, if you like, you can create an incremental version of unsLinGeomSolid (i.e., solve for DD instead of D). Before that, you may like to try enabling the "predictor" option, which may give the same behaviour as an incremental version because the displacement field is predicted as the start of each time step using the velocity.
bigphil is offline   Reply With Quote

Old   August 28, 2024, 11:33
Default
  #5
New Member
 
steve thomas
Join Date: Aug 2024
Posts: 3
Rep Power: 2
Steve1999 is on a distinguished road
Hi Philip

Thanks for your suggestion. I'll try out the predictor you mentioned first and then compare the result with linGeom.

Best,
Steve
Steve1999 is offline   Reply With Quote

Reply

Tags
solidmodel, solids4foam


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
[solids4Foam] Missing interpolate(sigma0) in fvSchemes in some tutorials Krapf OpenFOAM CC Toolkits for Fluid-Structure Interaction 8 June 23, 2024 07:59
solids4Foam & FOAM-FSI farah.elias OpenFOAM 21 August 28, 2023 15:57
Unable to run 3dTube tutorial in parallel (solids4foam) ff99 OpenFOAM CC Toolkits for Fluid-Structure Interaction 2 June 7, 2023 14:37
solids4Foam thermoelasticity hotCylinder tutorial with non-linear material cedwilli OpenFOAM CC Toolkits for Fluid-Structure Interaction 0 May 19, 2023 14:54
solids4Foam installation, foam-extend 4.0, ubuntu 18.04 baezacaljo OpenFOAM 0 July 17, 2021 00:35


All times are GMT -4. The time now is 16:31.