HowTo Get Help On The Message Board

From OpenFOAMWiki
Revision as of 01:56, 11 December 2012 by Linnemann (Talk | contribs)

... or the importance of precise posting

Questions on the message board are answered by volunteers. So

  • you can't expect to get an answer to every question (sometimes no one knows the answer)
  • but you can increase the probability to get an answer by using the following guidelines

And always remember: The difficult part about science is asking the right questions

1 Before posting - do your homework

  1. Give the person that should answer your question the feeling that you've invested at least as much time in it (formulation, previous research ...) as you expect her to invest in the answer. As said above: people are answering in their spare time.
  2. Use the search-function of the message-board (or google with site:cfd-online.com) to see if somebody had this problem before. Let people know what you have found and why it didn't help. Show that you have thought about your problem.
  3. If you have the feeling that your problem is unique/new: start a new thread

2 Posting

  1. Using an identifiable name is appreciated, and will get you respect in this community
  2. If you start a new thread give it a meaningful title (threads like "Hlp plz!" or "I'm a newbie" are very unlikely to draw attention)
  3. Don't cross-post. Posting the same question (even with small variations) to various threads doesn't increase the likelihood of it being answered (on the contrary).
  4. Try to post on a relevant sub-forum - posting on the main OpenFOAM forum will make it harder for everyone in the long run.
  5. Don't hijack threads. Just because people discuss the convergence of interFoam in a given thread doesn't mean that this is the place to talk about correct boundary conditions for the alpha-field. Also, reviving very old threads asking if the problem was solved is unlikely to lead to a response.
  6. Use english
  7. Be polite
  8. Be precise, but be brief. Make sure a large audience can understand your problem. Include relevant information like
    1. Problem description: What's your problem? What have you tried to fix your problem, and why hasn't it worked?
    2. Relevant output. Clip it to the relevant parts (it is very unlikely that someone will answer a posting that includes 123 time-steps). Use [CODE][/CODE] markers when posting code, program output or long file contents, e.g. fvSolution, fvSchemes and controlDict file contents.
    3. OpenFOAM-version and specific solver
      1. If your problem is related to compiling source code, always report the first compiler error. C-compilers will report multiple errors at once.
      2. If you have a problem with solver convergence, be sure to let people know about the numerical schemes you are using and the solver settings

Disclaimer: This is just a personal opinion and not the official policy of the Message-Board

3 Sample post

I will try to give an example taken purely from my own imagination that show the kind of info I would like in order to help people.

3.1 Prepare

Prepare for getting help: Cfd-online does not provide large filesize uploads so using a file hoster (e.g. dropbox, ge.tt, imgur, skydrive) and posting a public link to the picture/file makes it a lot easier to share files/pics or a complete case.

3.2 Thread title

First give it a relevant name in the title of the thread, e. g.

simpleFoam pipe case diverges

What this little information tells us is that the solver is simpleFoam, the geometry is a pipe and we know that the problem is that it diverges.

3.3 Relevant information

3.3.1 Geometry and mesh

Second give a sketch of the geometry, a screendump of the mesh and maybe even a cut through the mesh. Paraview and the Clip filter work well here. This helps immensely when trying to visualize the case in others brains. The quote "a picture says more than a thousand words" springs to mind here.

Below is an example of a picture inserted using a public link from dropbox:

PipeScreen.png

Also the first info you need to give is the output from checkMesh put into a log file

checkMesh > checkMesh.log

checkMesh.log

Ok now people know that you have a pipe with two bends and that the mesh is fully structured (paraview shows some as tets, but that is a render issue). The dimensions of the pipe is also known now. Also from the header files people know that you are using OpenFOAM version 2.1.x, this is relevant since there can be some bugs in the version used.

3.3.2 Numerical settings

Ok now we are ready to start identifying the problem. You know that you have divergence problems and if you have opened just one book about CFD, you know that stability is related to a number of things.

  • Mesh -> We get good output from checkMesh so thats ok
  • Solver -> This we get from the fvSolution file so upload/link that
  • Schemes -> From the fvSchemes file so upload/link that
  • Boundary conditions -> From the 0 folder so upload/link those

fvSolution

fvSchemes

This will allow people to see if you have the correct setup for the type of case/mesh you have.

3.3.3 Solver output

Also some good information to give is the output from the terminal, but please don't post 10+ iterations. Post only the relevant bits, for example the 2-3 iterations where the solver start to diverge. Remember to use the [CODE][/CODE] tags to improve readability for others. Another options would be to give the log file as a upload/link. The output can be directed into a file using:

simpleFoam > simpleFoam.log 2>&1

Below is an example of two iterations, they don't diverge but you get the drift.

[CODE]
Time = 11

smoothSolver:  Solving for Ux, Initial residual = 0.0394701, Final residual = 0.00283316, No Iterations 4
smoothSolver:  Solving for Uy, Initial residual = 0.0244406, Final residual = 0.00163773, No Iterations 4
smoothSolver:  Solving for Uz, Initial residual = 0.211626, Final residual = 0.0144428, No Iterations 4
GAMG:  Solving for p, Initial residual = 0.332445, Final residual = 0.0124884, No Iterations 7
time step continuity errors : sum local = 0.0803619, global = 0.0111056, cumulative = 0.0907056
smoothSolver:  Solving for epsilon, Initial residual = 0.0137779, Final residual = 0.000915039, No Iterations 3
smoothSolver:  Solving for k, Initial residual = 0.0205267, Final residual = 0.00103642, No Iterations 4
ExecutionTime = 6.07 s  ClockTime = 6 s

Time = 12

smoothSolver:  Solving for Ux, Initial residual = 0.0966665, Final residual = 0.00756253, No Iterations 4
smoothSolver:  Solving for Uy, Initial residual = 0.103096, Final residual = 0.00828772, No Iterations 4
smoothSolver:  Solving for Uz, Initial residual = 0.122408, Final residual = 0.00767765, No Iterations 4
GAMG:  Solving for p, Initial residual = 0.181939, Final residual = 0.00707472, No Iterations 5
time step continuity errors : sum local = 0.0780837, global = -0.0134194, cumulative = 0.0772862
smoothSolver:  Solving for epsilon, Initial residual = 0.0127022, Final residual = 0.000977349, No Iterations 3
smoothSolver:  Solving for k, Initial residual = 0.0222577, Final residual = 0.00121352, No Iterations 4
ExecutionTime = 6.46 s  ClockTime = 7 s
[/CODE]


3.4 Wait for someone to answer

This might seem like a lot of work, but if you want people to invest time on you, you must invest at least as much time in asking the right question and give sufficient input to allow people to help you. Remember that getting an answer can take some time, so be patient.

I'm sure that if you follow this simple guide you will get the help you need.