1st Step to OpenFOAM

Documenting my learnings from the course OpenFOAM Programming Course by Flowthermolab.

 Sometimes you want to follow some tutorials online. They use various versions of OpenFOAM, some can even be outdated. And the underlying code is different, I find it tricky to adapt a different version to the one used in the tutorials/courses. 

  1. If a few versions exist, need to source from $HOME/.bashrc.
  2. Open terminal Ctrl + Alt + T
  3. gedit $HOME/.bashrc
  4. Add in the required aliases.
  5. In my case:
  6. Save and close the file.
  7. Open a new terminal.
  8. Check if alias works.
  9.  
  10. Also create user application and library folders to ensure user defined/modified solvers, libraries etc are separate from source code.
  11. Output from terminal showing if we don't have user defined folder run made beforehand, then using mkdir -p $FOAM_RUN, there now exists an empty run folder
  12. Let's try to copy a test case file to test our installation.
  13. Copy DynamicList from openfoam_directory/applications/test/DynamicList
  14. Attempt to compile wmake on test cases fails 

  15. Try changing directory read-write access
  16. https://askubuntu.com/questions/163589/cannot-create-file-directory-in-home-directory
  17. Dynamic List has now been compiled in user folder.
  18. Run with Test-DynamicList in terminal to get this output
  19. Full terminal output
  20. jk@JK:~/OpenFOAM/jk-v2312/test/DynamicList$ Test-DynamicList
  21. <ldl>(4(0 1 2 3) 4{3})</ldl>
    sizes:  4/16 4/10
    <ldl>(0() 0())</ldl>
    sizes:  0/0 0/0
    <ll>
    2
    (
    4(0 1 2 3)
    4{3}
    )
    </ll>

    <dlA>(1 2 4)</dlA>
    sizes:  3/10
    Transferred to dlB
    <dlA>()</dlA>
    sizes:  0/0
    <dlB>(1 2 4)</dlB>
    sizes:  3/10
    Transferred to normal list
    <lstA size="3" ptr="0x635eecbf2b40">
    (1 2 4)
    </lstA>
    <dlB size="0" capacity="0" ptr="nullptr">
    ()
    </dlB>
    appended list a few times
    <dlB size="9" capacity="16" ptr="0x635eecb5f7d0">
    (1 2 4 1 2 4 1 2 4)
    </dlB>
    assigned list
    <dlB size="3" capacity="16" ptr="0x635eecb5f7d0">
    (1 2 4)
    </dlB>
    <dlC size="0" capacity="0" ptr="nullptr">
    ()
    </dlC>
    <dlC size="12" capacity="16" ptr="0x635eecbf2b60">
    (1 2 4 1 2 4 1 2 4 1 2 4)
    </dlC>
    Move construct to normal list
    <lstB size="12" ptr="0x635eecbf2bb0">
    (1 2 4 1 2 4 1 2 4 1 2 4)
    </lstB>
    <dlC size="0" capacity="0" ptr="nullptr">
    ()
    </dlC>
    Transfer construct from normal list
    <lstB size="0" ptr="nullptr">
    ()
    </lstB>
    <dlD size="12" capacity="12" ptr="0x635eecbf2bb0">
    (1 2 4 1 2 4 1 2 4 1 2 4)
    </dlD>
    <dlE1 size="0" capacity="10" ptr="0x635eecbf26b0">
    ()
    </dlE1>
    <dlE2 size="0" capacity="0" ptr="nullptr">
    ()
    </dlE2>
    <dlE2 size="5" capacity="16" ptr="0x635eecbf2b60">
    (0 1 2 3 4)
    </dlE2>
    <dlE3 size="5" capacity="5" ptr="0x635eecbf2bf0">
    (0 1 2 3 4)
    </dlE3>
    <dlE3 size="5" capacity="5" ptr="0x635eecbf2bf0">
    (4 3 2 1 0)
    </dlE3>
    <dlE3 size="5" capacity="5" ptr="0x635eecbf2bf0">
    (0 1 2 3 4)
    </dlE3>
    <dlE4 size="5" capacity="16" ptr="0x635eecbf2c30">
    (0 1 2 3 4)
    </dlE4>
    <dlE3 size="5" capacity="5" ptr="0x635eecbf2bf0">
    (0 1 2 3 4)
    </dlE3>
    adding 4
    use UIndirectList 4(30 10 20 40) remapped from 5(0 10 20 30 40)
    <dlE4 size="4" capacity="16" ptr="0x635eecbf2c30">
    (30 10 20 40)
    </dlE4>

    Test moving:
    move construct:
    input: ()
    list:  (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
    move assignment:
    input: ()
    list:  (14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    list in:  ()
    list out: (14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    list in:  ()
    list out: (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
    test move-append with (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14) and (14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    result: (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    inputs: () / () / ()
    test move dissimilar sizing:
    orig: ()
    <input size="0" capacity="0" ptr="nullptr">
    ()
    </input>
    <output size="45" capacity="100" ptr="0x635eecbf2f30">
    (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    </output>

    test remove with (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    input = (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    remove (-10 8) = (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    input = (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    remove (40 18) = (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5)
    input = (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    remove (-5 10) = (5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    input = (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    remove (10 8) = (0 1 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    input = (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
    remove (0 45) = ()

    test swap(List)
      input: 5/5 (0 1 2 3 4)
      list:  4/16 (5 6 7 8)
    after swap:
      input: 4/4 (5 6 7 8)
      list:  5/5 (0 1 2 3 4)

    End

     

 

 

Comments

Popular posts from this blog

Thoughts on open sourcing education

4th Step to OpenFOAM