- Apr 29, 2024
-
-
Mark OLESEN authored
- "buffered" corresponds to MPI_Bsend (buffered send), whereas the old name "blocking" is misleading since the regular MPI_Send also blocks until completion (ie, buffer can be reused). ENH: IPstream::read() returns std::streamsize instead of label (#3152) - previously returned a 'label' but std::streamsize is consistent with the input parameter and will help with later adjustments. - use <label> instead of <int> for internal accounting of the message size, for consistency with the underyling List<char> buffers used. - improve handling for corner case of IPstream receive with non-blocking, although this combination is not used anywhere
-
- Apr 25, 2024
-
-
mattijs authored
-
- Apr 24, 2024
-
-
mattijs authored
-
Mattijs Janssens authored
Fix fvsPatchFields reading/writing the "value" entry See merge request Development/openfoam!679
-
Mark OLESEN authored
- robuster and more reliable determination of inserted objects (previous code could produce false positives). Now also determine the number of inserted objects within the constructor (instead of simply storing a bool). This allows reuse in the address calculations to reduce overheads there. BUG: dodgy short-circuit logic for insertedObjectLabels() - as a quick short-circuit it previously created as demand-driven pointer with a zero elements. However, this meant that if this code was called first (before any other addressing), subsequent calls to the addressing would fail. BUG: bad logic and lookup for faAreaMapper (#3147) - was using labelHashSet but returning a bool and set using the addressing using the unfiltered objects! This is a latent bug since interpolated/inserted faces not currently supported anyhow. ENH: use std::unique_ptr for demand-driven data
-
Mark OLESEN authored
- manual revert for 44d0fbd5. Unless required for post-processing the "value" entry should not written if it is not mandatory for reading. This is especially crucial with an 'empty' patch field where the field (size 0) has a different size from the patch. - the changes made align fvsPatchField behaviour with fvPatchField
-
- Apr 23, 2024
-
-
Mark OLESEN authored
-
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
-
Mark OLESEN authored
-
Andrew Heather authored
reduce communication argList at startup See merge request Development/openfoam!678
-
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.
-
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) );
-
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.
-
- Apr 22, 2024
-
-
Mark OLESEN authored
- adds consistency with regular point-to-point parallel streams. ENH: add ITstream::tokens() methods - useful, for example, to disambiguate constructing tokenList from a ITstream. ITstream& is = otherDict.lookup("original"); tokenList deepCopy(is); // Error: from Istream or tokenList?? tokenList deepCopy(is.tokens()); // OK: from tokenList
-
Mark OLESEN authored
- same as append() did, but with more consistent names STYLE: replace special purpose append() with container method STYLE: update code style
-
- Apr 19, 2024
-
-
mattijs authored
-
Andrew Heather authored
update to internal accounting for finite-area See merge request Development/openfoam!675
-
Mark OLESEN authored
-
Mark OLESEN authored
-
Mark OLESEN authored
- The internal storage location of finite-area changes from being piggybacked on the polyMesh registry to a having its own dedicated registry: * allows a clearer separation of field types without name clashes. * prerequisite for supporting multiple finite-area regions (future) Old Locations: ``` 0/Us constant/faMesh system/faMeshDefinition system/faSchemes system/faSolution ``` New Locations: ``` 0/finite-area/Us constant/finite-area/faMesh system/finite-area/faMeshDefinition (or system/faMeshDefinition) system/finite-area/faSchemes system/finite-area/faSolution ``` NOTES: The new locations represent a hard change (breaking change) that is normally to be avoided, but seamless compatibility handling within the code was found to be unworkable. The `foamUpgradeFiniteArea` script provides assistance with migration. As a convenience, the system/faMeshDefinition location continues to be supported (may be deprecated in the future).
-
- Apr 18, 2024
-
-
mattijs authored
- was using blocking (=buffered) comms - was running out of MPI_COMM_SIZE buffer space - now using PstreamBuffers to have non-blocing comms
-
- Apr 16, 2024
-
-
Mark OLESEN authored
- lower memory overhead, consistent access pattern
-
Mark OLESEN authored
- use an internal 'typedef MeshObject<...> MeshObject_type' within derived classes. Reduces clutter and eases any updates.
-
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
-
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
-
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.
-
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)
-
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
-
- Apr 15, 2024
-
-
mattijs authored
- NewIFstream would read complete remote file to decide if was collated. - This limits files to 31bit size - Instead now have master-only opening of file. - Still has problem with refinement history/cellLevel etc.
-
- Apr 11, 2024
-
-
Kutalmış Berçin authored
-
- Apr 10, 2024
-
-
Mark OLESEN authored
- previously would always return "constant" as the instance for an optional dir/file that wasn't found. However, this meant retesting to screen out false positives. Now support an additional parameter 'bool constant_fallback = ...' to return "constant" or an empty word. The method signature changes slightly with a new optional bool parameter: //! Return \c "constant" instead of \c "" if the search failed const bool constant_fallback = true ENH: code consolidation for findInstancePath - relocate from Time to TimePaths and provide an additional static version that is reused in fileOperations BUG: distributedTriSurfaceMesh:::findLocalInstance broken (#3135) - was not checking the parent at all. COMP: remove unused findInstancePath(const fileName&, ..) method
-
Mark OLESEN authored
- support construct faceZoneSet from faceSet (#3126) ENH: support unregistered loading of cell/face/point sets
-
Mark OLESEN authored
- leave 'readContents' method name for exposed (public) methods. Generally not a problem, but can confuse the compiler when various public/private versions are available with the same number of parameters. STYLE: adjust meshObject debug statements
-
Mark OLESEN authored
- regIOobject::store(std::unique_ptr<...>&& ptr) - IOobjectList::add(std::unique_ptr<...>&& ptr) STYLE: io.globalCaseName() instead of io.time().globalCaseName() [#3007]
-
Mark OLESEN authored
ENH: combine broadcasts for uncollated master-only handling
-
Mark OLESEN authored
- the rootProcNo is usually == UPstream::masterNo()
-
- Apr 08, 2024
-
-
Kutalmış Berçin authored
-
- Apr 05, 2024
-
-
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.
-
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.
-
- Apr 03, 2024
-
-
Mark OLESEN authored
- used defunct "processors/" directory naming, and includes are now addressed by the file-handler anyhow. ENH: support 'tutorials/Alltest -init' - for copying/creating test directory without running
-