Skip to content
Snippets Groups Projects

CONT: Addition of compressibleIsoInterFoam and PLIC

Merged Sergio Ferraris requested to merge integration-vof-library into develop

Contribution by Henning Scheufler and Johan Roenby. Headers reviewed. Rebased to the latest develop.

  1. Implementation of the compressibleIsoInterFOam solver
  2. Implementation of a new PLIC interpolation scheme.
  3. New tutorials associated with the solvers

This implementation was carried out by Henning Scheufler (DLR) and Johan Roenby (DHI), following :

\verbatim

Henning Scheufler, Johan Roenby, Accurate and efficient surface reconstruction from volume fraction data on general meshes, Journal of Computational Physics, 2019, doi 10.1016/j.jcp.2019.01.009

\endverbatim

The integration of the code was carried out by Andy Heather and Sergio Ferraris from OpenCFD Ltd.

Edited by Andrew Heather

Merge request reports

Merged by Andrew HeatherAndrew Heather 5 years ago (Jun 9, 2020 7:15am UTC)

Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Hi @mark . Not sure exactly what you mean by "unmerged". That the same point occurs several time in pts (true) or are we talking about merging across processors? Henning should answer this but how do we include him as participant (@Henning86 does not seem to tag him).

  • Hi @johan_roenby @Henning86 and I meant unmerged on the local processor, which means that we would either need to do a geometric merge (processor-local), or generate the points differently from cutter itself - like returning them directly as a primitive patch.

    Thoughts?

  • Hi @mark @johan_roenby,

    the PLIC/isosurace lacks C0 continuity. Does this explain; unmerged?

  • @Henning86, it seems that this is a refactoring of the old Foam::isoAdvection::writeIsoFaces(const DynamicList<List >& faces) (See here) which also had an "if (Pstream::parRun())" to collect faces from different processors. Shouldn't the Foam::interface::interface(const fvMesh& mesh) constructor have something similar?

  • The way things are setup within the sampling framework, it is best if the surfaces are kept locally and merged by the sampledSurfaces.

  • All point and faces are local to the processor

    I run the depthCharge in serial and parallel and the surface are nearly identical depthCharge2D.zip

    Disclaimer: I currently cannot access the cluster and work on my one local machine due to high load on VPN infrastructure caused by the DLR shutdown. So this results are made with a similar library

  • Hi @Henning86 - quick email at Mark.Olesen (at) esi-group.com to see if we can find a few short minutes to discuss on the phone for quick clarification.

  • @johan_roenby and @Henning86 - if revamping the libraries, could also be worth considering using a bitSet for representing interface cells instead of a boolList. Apart from saving storage space, it has some other nice features.

    In addition to the set-like functionality (and, or, xor, flip, etc), can also have faster traversal some for sparse sets. Can also use range-for for direct traversal of on bits.

    Eg, instead of this

    forAll(myBoolList, facei)
    {
        if (myBoolList[facei]) 
        {
            do something;
        }
    }

    can use this:

    for (const label facei : myBitset)
    {
        do something;
    }

    If the sparsity pattern in favourable, the intermediate iterator ++ will skip over blocks of 32 false values in a single test.

    Edited by Mark OLESEN
  • @mark As discussed on the phone I removed the interface class and will also change the booList to bitSets

    However, I donot have permission to push on the integration-vof-library branch.

  • Hi @Henning86

    I've added developer access to the repo - you should be able to push to the branch now

  • added 3 commits

    • 0e9da1bb - BUG: missing condition in selector
    • 1a80e8b8 - STYLE: moved class interface into reconstructionSchemes
    • f040e598 - BUG: change the tolerance for downwind face

    Compare with previous version

  • added 1 commit

    • 67d6eb79 - STYLE: refactor reconstructionSchemes::surface()

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading