Skip to content

Initialization error in Step 7 #75

Description

@Bob-McCrory

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

Activity

  1. piyueh commented on Oct 4, 2020

    @piyueh

    @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)...] = ....
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions