1. 31 Jan, 2019 1 commit
  2. 23 Jan, 2019 1 commit
  3. 10 Jan, 2019 2 commits
  4. 08 Jan, 2019 1 commit
  5. 07 Jan, 2019 1 commit
  6. 21 Dec, 2018 1 commit
    • Mark Olesen's avatar
      ENH: use Zero when zero-initializing types · e23bd3bb
      Mark Olesen authored
      - makes the intent clearer and avoids the need for additional
        constructor casting. Eg,
      
            labelList(10, Zero)    vs.  labelList(10, 0)
            scalarField(10, Zero)  vs.  scalarField(10, scalar(0))
            vectorField(10, Zero)  vs.  vectorField(10, vector::zero)
      e23bd3bb
  7. 10 Dec, 2018 1 commit
  8. 05 Dec, 2018 1 commit
    • Mark Olesen's avatar
      ENH: code cleanup for vtk transcription · b2b4517c
      Mark Olesen authored
      - use cellCentres() instead of volField equivalent for vtk conversion
      
      - make looping variables more consistent
      
      - centralize the transcription of OpenFOAM -> vtk tuples
      b2b4517c
  9. 03 Dec, 2018 1 commit
    • Mark Olesen's avatar
      CONFIG: adjustments to environment · 99505b84
      Mark Olesen authored
      - provide default WM_DIR if not already set, to improve robustness if a
        reduced environment is used
      
      - add etc/ to WM_PROJECT_SITE search. This makes the site directory
        structure consistent with the OpenFOAM structure.
        Eg,
      
            WM_PROJECT_SITE/etc/..
            WM_PROJECT_SITE/bin/..
            WM_PROJECT_SITE/platforms/..
      
      - Don't set/export WM_OSTYPE.  The default is POSIX and is properly
        defaulted throughout, including in CMakeLists-OpenFOAM.txt (also for
        Catalyst)
      99505b84
  10. 29 Nov, 2018 1 commit
    • Mark Olesen's avatar
      ENH: improve setup for paraview · b38efe61
      Mark Olesen authored
      - removed reliance on ParaView_INCLUDE_DIR variable for conveying the
        major.minor version information when compiling. This can be somewhat
        fragile and also adds variable that is an unnecessary when running
        (only used when compiling).
      
        Instead use `have_pvplugin_support` function in paraviewFunctions
        wmake script to determine the maj.min from the PV_PLUGIN_PATH
        since we have already defined the output path there with paraview
        maj.min numbering.
      
        Can now build with paraview from the operating system,
        provided that it has develop headers available.
      
            ParaView_VERSION=system
      
        In the etc/config.sh/paraview setup, the maj.min is taken from
        the corresponding `paraview --version` output and used when
        defining the PV_PLUGIN_PATH.
      
        During the build, the include path taken from `paraview-config`
        for a system installation, from the guess installation root
        of the paraview binary, or ParaView_DIR otherwise.
      
      NB: using a system ParaView for building runTimePostProcessing is unsupported.
      
      - these types of builds appear to have various library resolution issues
        (eg, libexpat not being loaded). Additionally, the build logic does
        not yet cover this type of use case.
      b38efe61
  11. 27 Aug, 2018 1 commit
    • Will Bainbridge's avatar
      fileHandler: Added flush method · c985887b
      Will Bainbridge authored
      This method waits until all the threads have completed IO operations and
      then clears any cached information about the files on disk. This
      replaces the deactivation of threading by means of zeroing the buffer
      size when writing and reading of a file happen in sequence. It also
      allows paraFoam to update the list of available times.
      
      Patch contributed by Mattijs Janssens
      Resolves bug report https://bugs.openfoam.org/view.php?id=2962
      c985887b
  12. 30 Jul, 2018 1 commit
  13. 26 Jul, 2018 2 commits
    • Mark Olesen's avatar
      ENH: allow wordHashSet filter for IOobjectList::names · cd8201dc
      Mark Olesen authored
      - simplifies usage.
        Support syncPar check on names() to detect inconsistencies.
      
      - simplify readFields, ReadFields and other routines by using these
        new methods.
      cd8201dc
    • Mark Olesen's avatar
      ENH: fvMeshSubset improvements (issue #951) · f2f25336
      Mark Olesen authored
      - what was previously termed 'setLargeCellSubset()' is now simply
        'setCellSubset()' and supports memory efficient interfaces.
      
        The new parameter ordering avoids ambiguities caused by default
        parameters.
      
        Old parameter order:
      
            setLargeCellSubset
            (
                const labelList& region,
                const label currentRegion,
                const label patchID = -1,
                const bool syncCouples = true
            );
      
        New parameter order:
      
            setCellSubset
            (
                const label regioni,
                const labelUList& regions,
                const label patchID = -1,
                const bool syncCouples = true
            );
      
         And without ambiguity:
      
            setCellSubset
            (
                const labelUList& selectedCells,
                const label patchID = -1,
                const bool syncCouples = true
            );
      
      - support bitSet directly for specifying the selectedCells for
        memory efficiency and ease of use.
      
      - Additional constructors to perform setCellSubset() immediately,
        which simplifies coding.
      
        For example,
      
            meshParts.set
            (
                zonei,
                new fvMeshSubset(mesh, selectedCells)
            );
      
        Or even
      
            return autoPtr<fvMeshSubset>::New(mesh, selectedCells);
      f2f25336
  14. 24 Jul, 2018 1 commit
  15. 30 May, 2018 1 commit
  16. 17 May, 2018 1 commit
    • Henry Weller's avatar
      ENH: Improvements to the fileHandler and collated IO · ab44b1cb
      Henry Weller authored
      Improvements to existing functionality
      --------------------------------------
        - MPI is initialised without thread support if it is not needed e.g. uncollated
        - Use native c++11 threading; avoids problem with static destruction order.
        - etc/cellModels now only read if needed.
        - etc/controlDict can now be read from the environment variable FOAM_CONTROLDICT
        - Uniform files (e.g. '0/uniform/time') are now read only once on the master only
          (with the masterUncollated or collated file handlers)
        - collated format writes to 'processorsNNN' instead of 'processors'.  The file
          format is unchanged.
        - Thread buffer and file buffer size are no longer limited to 2Gb.
      
      The global controlDict file contains parameters for file handling.  Under some
      circumstances, e.g. running in parallel on a system without NFS, the user may
      need to set some parameters, e.g. fileHandler, before the global controlDict
      file is read from file.  To support this, OpenFOAM now allows the global
      controlDict to be read as a string set to the FOAM_CONTROLDICT environment
      variable.
      
      The FOAM_CONTROLDICT environment variable can be set to the content the global
      controlDict file, e.g. from a sh/bash shell:
      
          export FOAM_CONTROLDICT=$(foamDictionary $FOAM_ETC/controlDict)
      
      FOAM_CONTROLDICT can then be passed to mpirun using the -x option, e.g.:
      
          mpirun -np 2 -x FOAM_CONTROLDICT simpleFoam -parallel
      
      Note that while this avoids the need for NFS to read the OpenFOAM configuration
      the executable still needs to load shared libraries which must either be copied
      locally or available via NFS or equivalent.
      
      New: Multiple IO ranks
      ----------------------
      The masterUncollated and collated fileHandlers can now use multiple ranks for
      writing e.g.:
      
          mpirun -np 6 simpleFoam -parallel -ioRanks '(0 3)'
      
      In this example ranks 0 ('processor0') and 3 ('processor3') now handle all the
      I/O.  Rank 0 handles 0,1,2 and rank 3 handles 3,4,5.  The set of IO ranks should always
      include 0 as first element and be sorted in increasing order.
      
      The collated fileHandler uses the directory naming processorsNNN_XXX-YYY where
      NNN is the total number of processors and XXX and YYY are first and last
      processor in the rank, e.g. in above example the directories would be
      
          processors6_0-2
          processors6_3-5
      
      and each of the collated files in these contains data of the local ranks
      only. The same naming also applies when e.g. running decomposePar:
      
      decomposePar -fileHandler collated -ioRanks '(0 3)'
      
      New: Distributed data
      ---------------------
      
      The individual root directories can be placed on different hosts with different
      paths if necessary.  In the current framework it is necessary to specify the
      root per slave process but this has been simplified with the option of specifying
      the root per host with the -hostRoots command line option:
      
          mpirun -np 6 simpleFoam -parallel -ioRanks '(0 3)' \
              -hostRoots '("machineA" "/tmp/" "machineB" "/tmp")'
      
      The hostRoots option is followed by a list of machine name + root directory, the
      machine name can contain regular expressions.
      
      New: hostCollated
      -----------------
      
      The new hostCollated fileHandler automatically sets the 'ioRanks' according to
      the host name with the lowest rank e.g. to run simpleFoam on 6 processors with
      ranks 0-2 on machineA and ranks 3-5 on machineB with the machines specified in
      the hostfile:
      
          mpirun -np 6 --hostfile hostfile simpleFoam -parallel -fileHandler hostCollated
      
      This is equivalent to
      
          mpirun -np 6 --hostfile hostfile simpleFoam -parallel -fileHandler collated -ioRanks '(0 3)'
      
      This example will write directories:
      
          processors6_0-2/
          processors6_3-5/
      
      A typical example would use distributed data e.g. no two nodes, machineA and
      machineB, each with three processes:
      
          decomposePar -fileHandler collated -case cavity
      
          # Copy case (constant/*, system/*, processors6/) to master:
          rsync -a cavity machineA:/tmp/
      
          # Create root on slave:
          ssh machineB mkdir -p /tmp/cavity
      
          # Run
          mpirun --hostfile hostfile icoFoam \
              -case /tmp/cavity -parallel -fileHandler hostCollated \
              -hostRoots '("machineA" "/tmp" "machineB" "/tmp")'
      
      Contributed by Mattijs Janssens
      ab44b1cb
  17. 12 Apr, 2018 2 commits
  18. 03 Apr, 2018 1 commit
  19. 16 Mar, 2018 1 commit
  20. 18 Dec, 2017 1 commit
  21. 22 Sep, 2017 2 commits
    • Andrew Heather's avatar
      ENH: Lagrangian - provided backwards compatibility for cases using the · 65a9d494
      Andrew Heather authored
      old "positions" file form
      
      The change to barycentric-based tracking changed the contents of the
      cloud "positions" file to a new format comprising the barycentric
      co-ordinates and other cell position-based info.  This broke
      backwards compatibility, providing no option to restart old cases
      (v1706 and earlier), and caused difficulties for dependent code, e.g.
      for post-processing utilities that could only infer the contents only
      after reading.
      
      The barycentric position info is now written to a file called
      "coordinates" with provision to restart old cases for which only the
      "positions" file is available. Related utilities, e.g. for parallel
      running and data conversion have been updated to be able to support both
      file types.
      
      To write the "positions" file by default, use set the following option
      in the InfoSwitches section of the controlDict:
      
          writeLagrangianPositions 1;
      65a9d494
    • Andrew Heather's avatar
  22. 12 Sep, 2017 2 commits
  23. 02 Aug, 2017 1 commit