Skip to content
Snippets Groups Projects
  1. Apr 23, 2024
    • Mark OLESEN's avatar
      ENH: adjust return type for token compound factory method · 411ac5fc
      Mark OLESEN authored
      - return autoPtr<token::compound> instead of the derived type,
        otherwise cannot easily construct a token from it
      
      ENH: additional typed version of refCompoundToken()
      
      - symmetric with typed version of transferCompoundToken()
        and isCompound()
      
      - add ITstream::findCompound<Type>() method.
        Useful for searching within token streams
      411ac5fc
    • Mark OLESEN's avatar
    • Andrew Heather's avatar
      Merge branch 'update-argList-mpi-startup' into 'develop' · 3874c131
      Andrew Heather authored
      reduce communication argList at startup
      
      See merge request Development/openfoam!678
      3874c131
    • Mark OLESEN's avatar
      ENH: stricter handling when freeing communicator components · 09377471
      Mark OLESEN authored
      - previously automatically skipped the first communicator (which was
        assumed to be MPI_COMM_WORLD), but now simply rely on the
        internal pendingMPIFree_ to track which communicators have actually
        been allocated.
      09377471
    • Mark OLESEN's avatar
      ENH: add wrapped accessor for MPI_Comm · 2889dc72
      Mark OLESEN authored
      - UPstream::Communicator is similar to UPstream::Request to
        wrap/unwrap MPI_Comm. Provides a 'lookup' method to transcribe
        the internal OpenFOAM communicator tracking to the opaque wrapped
        version.
      
      - provide an 'openfoam_mpi.H' interfacing file, which includes
        the <mpi.h> as well as casting routines.
      
        Example (caution: ugly!)
      
           MPI_Comm myComm =
               PstreamUtils::Cast::to_mpi
               (
                   UPstream::Communicator::lookup(UPstream::worldComm)
               );
      2889dc72
    • Mark OLESEN's avatar
      ENH: reduce communication argList at startup (#3142) · d75c60d8
      Mark OLESEN authored
      - replace point-to-point transmission of the argList args/options with
        a broadcast. This is sufficient for most cases (without distributed
        roots).
      
        For "normal" cases (non-distributed roots) this will replace the
        nProcs-1 messages with a single broadcast.
      
      - for cases with distributed roots, distinguish between a single,
        identical root and different roots.  An identical root can also be
        subsequently handled with a broadcast. Different roots will still
        require individual point-to-point communication.
      
        For cases with distributed roots, it will add the overhead of an
        additional broadcast.
      d75c60d8
  2. Apr 22, 2024
  3. Apr 19, 2024
  4. Apr 18, 2024
  5. Apr 16, 2024
    • Mark OLESEN's avatar
      ENH: prefer objectRegistry sorted to lookupClass · 31aadc5c
      Mark OLESEN authored
      - lower memory overhead, consistent access pattern
      31aadc5c
    • Mark OLESEN's avatar
      ENH: use typedef for MeshObject within derived classes · a803516b
      Mark OLESEN authored
      - use an internal 'typedef MeshObject<...> MeshObject_type' within
        derived classes. Reduces clutter and eases any updates.
      a803516b
    • Mark OLESEN's avatar
      ENH: add MeshObject Release() static method · 1b212789
      Mark OLESEN authored
      - Delete() will perform a 'checkOut()' which does the following:
        * remove the object from the registry
        * delete the pointer (if owned by the registry)
      
      - Release() does the following:
        * transfer ownership of the pointer (if owned by the registry)
      
      - Store() does the following:
        * transfer ownership of the pointer to the registry
      
      ENH: use UPtrList of sorted objects for MeshObject updates
      
      - few allocations and lower overhead than using a HashTable,
        ensures the same walk order over the objects (in parallel)
      
      STYLE: adjust meshObject debug statements
      1b212789
    • Mark OLESEN's avatar
      ENH: add separate handling for clearing mesh phi · 688fd5f3
      Mark OLESEN authored
      STYLE: update code style for phi modification (engine motion)
      
      ENH: pass isMeshUpdate param in fvMesh/polyMesh clearOut() methods
      
      - top-level use of isMeshUpdate parameter to clearOut and
        clearAddressing was being inadvertently filtered out
      688fd5f3
    • Mark OLESEN's avatar
      REGRESSION: distributedTriSurfaceMesh:::findLocalInstance failure (#3135) · 75e19c31
      Mark OLESEN authored
      - after the modification of d578d48a, the parent was now actually
        searched. However, should be returning "constant" and not trigger a
        FatalError if the file/directory is not found.
      75e19c31
    • Mark OLESEN's avatar
      ENH: reduce reliance on stringListOps functions · 16dd92b3
      Mark OLESEN authored
      - findStrings, findMatchingStrings now mostly covered by matching
        intrinsics in wordRe and wordRes.
      
        Add static wordRes match() and matching() variants
      
      COMP: remove stringListOps include from objectRegistry.H
      
      - was already noted for removal (NOV-2018)
      16dd92b3
    • Mark OLESEN's avatar
      ENH: add const_cast variants for isA<> and refCast<> · 92c329a8
      Mark OLESEN authored
      - an example of the new, more succinct refConstCast version:
      
            auto& abc = refConstCast<adjointVectorBoundaryCondition>(Uab);
      
        older:
            adjointVectorBoundaryCondition& abc =
                refCast<adjointVectorBoundaryCondition>
                (
                    const_cast<fvPatchVectorField&>(Uab)
                );
        or:
            adjointVectorBoundaryCondition& abc =
                const_cast<adjointVectorBoundaryCondition&>
                (
                    refCast<const adjointVectorBoundaryCondition>(Uab)
                );
      
      - an example of the new, more succinct isA_constCast version:
      
            auto* acapPtr = isA_constCast<fieldType>(abf[patchi]);
      
            if (acapPtr)
            {
                auto& acap = *acapPtr;
                ...
            }
      
        older:
            if (isA<fieldType>(abf[patchi]))
            {
                fieldType& acap =
                    const_cast<fieldType&>
                    (
                        refCast<const fieldType>(abf[patchi])
                    );
                ...
            }
      
      STYLE: remove spurious 'const' qualifier from isA<> use
      92c329a8
  6. Apr 15, 2024
  7. Apr 11, 2024
  8. Apr 10, 2024
  9. Apr 08, 2024
  10. Apr 05, 2024
    • Mark OLESEN's avatar
      BUG: cached ensight type not a word (fixes #3133) · 0ef981ad
      Mark OLESEN authored
      - the type/name for field caching were saved as word, but ensight has
        things like "tensor symm" etc, which do not parse very well as
        'word'. Now save as 'string' type.
      
        Backwards compatibility is OK since a word token will also be
        readable as string etc.
      0ef981ad
    • Mark OLESEN's avatar
      ENH: accept reading unquoted string (ie, word) · 2d611276
      Mark OLESEN authored
      - makes string reading consistent with fileName reading.
      
        Related to #3133 to also allow compatibility when reading existing
        dictionaries written with unquoted string contents.
      2d611276
  11. Apr 03, 2024
  12. Mar 30, 2024
  13. Mar 28, 2024
  14. Mar 27, 2024