Skip to content
Snippets Groups Projects
Open postProcess utility does not accept subfolders, contrary to run-time function object
  • View options
  • postProcess utility does not accept subfolders, contrary to run-time function object

  • View options
  • Open Issue created

    Summary

    When using function objects during runtime, their dicts can be stored in arbitrary subfolders, e.g. "system/postProcessing", with the path given in controlDict. This is useful if many function objects are used. The postProcess utility, however, does not accept such subfolder paths and requires the dicts to be present in the "system" folder to work.

    Steps to reproduce

    cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity .
    cd cavity
    blockMesh

    copy attached file probes to a new subfolder "system/postProcessing/"

    insert into controlDict:

    functions
    {
        #include "postProcessing/probes"
    }

    run

    icoFoam

    --> works as expected (output U to case/postProcessing/, see example log below)

    Attempt 1

    (delete results in folder case/postProcessing)

    postProcess

    --> not working at all (no output in case/postProcessing/) - but also no error warning.

    Attempt 2

    postProcess -func probes

    --> wrong output, executes default dict from "caseDicts/postProcessing/probes/probes.cfg" at (0 0 0), not the custom one - no warning.

    Attempt 3

    postProcess -func probes -dict "system/postProcessing/probes"

    --> wrong output, executes default dict from "caseDicts/postProcessing/probes/probes.cfg" at (0 0 0), not the custom one - no warning.

    Example case

    See above

    What is the current bug behaviour?

    • No output in attempt 1.
    • Wrong output in attempts 2 and 3, without warning.

    What is the expected correct behavior?

    • Show a warning if a default dict is used
    • Use of the dictionary defined in controlDict in attempts 1 and 2, as described in postProcess.C:

    Execute the set of functionObjects specified in the selected dictionary (which defaults to system/controlDict) ...

    • Use of the dictionary at the path stated in attempt 3, as described in postProcess.H:

    If the "dict" argument is specified the functionObjectList is constructed from that dictionary otherwise the functionObjectList is constructed from the "functions" sub-dictionary of "system/controlDict"

    Relevant logs and/or images

    Desired output in case/postProcessing/probes/0/U:

    # Probe 0 (0.05 0.05 0.005)
    #       Probe             0
    #        Time
                0             (0 0 0)
              0.1             (-0.195685 0.0261655 0)
              0.2             (-0.19606 0.0263849 0)
              0.3             (-0.196066 0.0263885 0)
              0.4             (-0.196068 0.0263895 0)
              0.5             (-0.196068 0.0263898 0)

    Environment information

    • OpenFOAM version : v1812, v1912, v2006
    • Operating system : CentOS Linux release 7.4.1708
    • Hardware info : HPC
    • Compiler : g++ (Spack GCC) 9.3.0

    Possible fixes

    • Merge request
    • Branch

    Linked items ... 0

  • Activity

    • All activity
    • Comments only
    • History only
    • Newest first
    • Oldest first
    Loading Loading Loading Loading Loading Loading Loading Loading Loading Loading