CFDPython icon indicating copy to clipboard operation
CFDPython copied to clipboard

Initialization error in Step 7

Open Bob-McCrory opened this issue 5 years ago • 1 comments

I believe the initialization in the Step 7 diffuse() function is incomplete: Only the nodes with an initial value of 2 are reset; all other nodes are left as they were after the last call to diffuse(). For example, if you run diffuse(10) twice in succession and look at statistics such as the maximum and minimum value of u, you will see that the results differ in the two runs. This occurs because the initial values outside of [0.5, 1.0], [0.5, 1.0] have not been reset to 1.0.

This can be remedied by adding "u = numpy.ones((ny, nx)) as the first statement in diffuse().

Thanks for putting these steps to CFD together; they have been very helpful to me. I hope this is a little helpful for you.

Bob

Bob-McCrory avatar Oct 04 '20 21:10 Bob-McCrory

@Bob-McCrory Yes, you're right. Thanks for pointing this out! There are two ways to fix it, depending on what diffuse(...) wants to achieve.

  1. diffuse(...) always starts the time-marching from t=0. Then, we completely re-initialize u at the the beginning of diffuse(...) as you suggested.
  2. diffuse(...) always continues the time-marching from the current state fo u. In this case, we remove the line of u[int(.5 / dy)...] = ....

piyueh avatar Oct 04 '20 22:10 piyueh