|
[Sponsors] |
[solids4Foam] How to choose fvSchemes for solids? |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
February 7, 2020, 06:50 |
How to choose fvSchemes for solids?
|
#1 | ||||
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
The post below is from an extract from an email conversation I recently had that some may find useful. The questions are in quotes followed by my replies.
Quote:
Quote:
If steady-state or quasi-static, set to "steadyState" If transient where inertia effects are not negligible then set to “Euler”. In my experience, “backward” is not good. Note: if conservation of kinetic energy is important, you need to make sure to perform a time-step sensitivity analysis. If you are not sure, then use “Euler” gradSchemes: always use “extendedLeastSquares 0”: it is the same as leastSquares but correctly accounts for boundary non-orthogonal corrections; extendedLeastSquares gives seconds order accuracy for all meshes "Gauss linear” is OK on perfect structured grids but is poor on unstructured meshes so just stick with extendedLeastSquares divSchemes: this has less effects on the accuracy so "Gauss linear” is mostly fine if you do notice some strange stresses related to the mesh then "Gauss skewCorrected linear” is a bit more accurate. laplacianSchemes: “Gauss linear corrected” is normally fine if you do notice some strange stresses related to the mesh then "Gauss linear newSkewCorrected 1” is a bit more accurate. snGradSchemes: “corrected” is normally fine if you do notice some strange stresses related to the mesh then "newSkewCorrected 1” is a bit more accurate. interpolationSchemss: linear is fine for all for multi-material cases including a bi-material interface (i.e. where two different materials share an internal face) then “interpolate(impK) harmonic;” may improve convergence (it should not affect the answer though) but "interpolate(impK) linear;” is often fine. So you can see there are not many choices to be made, compared with "div(phi, U)" ins fluids for example. Quote:
try a lower value for the D (or DD depending on the solidModel) under-relaxation factor in fvSolution: first try change the fields value e.g. 0.7 or 0.5 or even 0.1. Setting it less than 0.1 will result in very slow convergence. if that doesn’t work, try change the equation value e.g. 0.999 or 0.99. Values less than 0.99 can result in very slow convergence (or wrong answers): be careful with equation relaxation as the solution is very sensitive to it. if you are using “solidContact" boundary conditions, these can cause convergence issues; in the solidContact boundary condition, try lower values for the “penaltyScale” e.g try 0.1 or 0.01 or 0.001. This controls the stiffness of springs between the master and slave surfaces. Smaller penaltyScale values will allow more overlap of the two surfaces but will improve convergence. The ideal value will give good convergence but with "small enough” overlap you can also try smaller time-steps Quote:
Philip |
|||||
February 7, 2020, 14:38 |
|
#2 |
Senior Member
Herpes Free Engineer
Join Date: Sep 2019
Location: The Home Under The Ground with the Lost Boys
Posts: 931
Rep Power: 13 |
Hi bigphil,
Is there any chance for you to consider to release your software as a submodule in OpenFOAM? Which would be win-win for users and your software? Recently OpenQBMM seems to be released as a submodule there.
__________________
The OpenFOAM community is the biggest contributor to OpenFOAM: User guide/Wiki-1/Wiki-2/Code guide/Code Wiki/Journal Nilsson/Guerrero/Holzinger/Holzmann/Nagy/Santos/Nozaki/Jasak/Primer Governance Bugs/Features: OpenFOAM (ESI-OpenCFD-Trademark) Bugs/Features: FOAM-Extend (Wikki-FSB) Bugs: OpenFOAM.org How to create a MWE New: Forkable OpenFOAM mirror |
|
February 10, 2020, 06:10 |
|
#3 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Quote:
I would be happy to. From a very quick browse through the OpenQBMM website I can't seem to find a reference to the submodule installation appropriate. Is there a link or instructions you can provide? Thanks! |
||
February 11, 2020, 08:50 |
|
#4 |
Senior Member
Herpes Free Engineer
Join Date: Sep 2019
Location: The Home Under The Ground with the Lost Boys
Posts: 931
Rep Power: 13 |
Hi,
I think the easiest way is to create a `feature request` in GitLab. For example, OpenQBMM was added through a ticket: GitLab-1522.
__________________
The OpenFOAM community is the biggest contributor to OpenFOAM: User guide/Wiki-1/Wiki-2/Code guide/Code Wiki/Journal Nilsson/Guerrero/Holzinger/Holzmann/Nagy/Santos/Nozaki/Jasak/Primer Governance Bugs/Features: OpenFOAM (ESI-OpenCFD-Trademark) Bugs/Features: FOAM-Extend (Wikki-FSB) Bugs: OpenFOAM.org How to create a MWE New: Forkable OpenFOAM mirror |
|
February 13, 2020, 08:27 |
|
#5 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Quote:
Before doing this, I need to merge the OpenFOAM ESI and Foundation ports into the master branch of solids4foam, but this is definitely a nice idea. |
||
February 19, 2020, 18:58 |
|
#6 |
Senior Member
Herpes Free Engineer
Join Date: Sep 2019
Location: The Home Under The Ground with the Lost Boys
Posts: 931
Rep Power: 13 |
Thank you for your interest.
I would nevertheless create a feature request like this one made for sedFOAM: https://develop.openfoam.com/Develop...am/issues/1601 I believe the main OF maintainers would do their best to give a hand for your rebasing, and share the pain, if need be (albeit a slow-paced help). Again thank you very much for your contributions to the community.
__________________
The OpenFOAM community is the biggest contributor to OpenFOAM: User guide/Wiki-1/Wiki-2/Code guide/Code Wiki/Journal Nilsson/Guerrero/Holzinger/Holzmann/Nagy/Santos/Nozaki/Jasak/Primer Governance Bugs/Features: OpenFOAM (ESI-OpenCFD-Trademark) Bugs/Features: FOAM-Extend (Wikki-FSB) Bugs: OpenFOAM.org How to create a MWE New: Forkable OpenFOAM mirror |
|
November 22, 2022, 07:26 |
|
#7 | |
Member
|
Hi Philip,
do you have some insights why "backward" is "not good"? Quote:
|
||
December 2, 2022, 14:32 |
|
#8 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Quote:
Actually, based on my more recent experience (and results of others), this statement about "backward" being "not good" is not true. So, if you want greater temporal accuracy, backward will produce far less diffusion (energy loss) than Euler for the same time-step (in general). In my presentation at OFW17 "Implementing a block-coupled implicit vertex-centred finite volume approach for solid mechanics in OpenFOAM", I compared 1st order Euler, 2nd order backward and 2nd order Newmark-beta (for the chosen parameters, this is equivalent to Trapezoidal rule and Crank-Nicolson); you can see the comparison on slide 53. One note of caution, be careful that the old and old-old displacement fields are correctly initialised (e.g. to zero), otherwise the backward scheme may blow up at the start. Or, even better, use 1st order Euler for the first step. |
||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[TUTORIAL] Run fluent on distributed memory with 2 windows 7 64 bit machines | ghost82 | FLUENT | 54 | February 9, 2022 04:32 |
fvschemes for laminar particles of fluidisedBed | gryphaea1635 | OpenFOAM Pre-Processing | 1 | April 26, 2020 17:10 |
HTC: How to choose reference temperature value | halcyon | STAR-CCM+ | 3 | April 12, 2012 12:46 |
fvschemes and fvsolutions in MRFSimpleFoam | renyun0511 | OpenFOAM Running, Solving & CFD | 23 | August 3, 2011 05:07 |
Solver and geometry choose for drag coefficient calculation around circular cylinder at large Re | lin | OpenFOAM Running, Solving & CFD | 3 | April 16, 2009 11:50 |