54 commsType_(commsType),
61 <<
"decomposedBlockData " <<
name()
62 <<
" constructed with IOobject::MUST_READ_IF_MODIFIED" 63 " but decomposedBlockData does not support automatic rereading." 89 commsType_(commsType),
96 <<
"decomposedBlockData " <<
name()
97 <<
" constructed with IOobject::MUST_READ_IF_MODIFIED" 98 " but decomposedBlockData does not support automatic rereading." 129 commsType_(commsType),
136 <<
"decomposedBlockData " <<
name()
137 <<
" constructed with IOobject::MUST_READ_IF_MODIFIED" 138 " but decomposedBlockData does not support automatic rereading." 170 Pout<<
"decomposedBlockData::readMasterHeader:" 178 is.
fatalCheck(
"read(Istream&) : reading entry");
199 <<
" version " << version <<
";\n" 200 <<
" format " << format <<
";\n" 201 <<
" class " << type <<
";\n";
204 os <<
" note " << note <<
";\n";
209 os <<
" location " << location <<
";\n";
212 os <<
" object " << name <<
";\n" 228 Pout<<
"decomposedBlockData::readBlock:" 229 <<
" stream:" << is.
name() <<
" attempt to read block " << blocki
241 is.
fatalCheck(
"read(Istream&) : reading entry");
243 string buf(data.begin(), data.size());
250 <<
"problem while reading header for object " 258 is.
fatalCheck(
"read(Istream&) : reading entry");
263 string buf(data.begin(), data.size());
270 <<
"problem while reading header for object " 273 ver = headerStream.version();
274 fmt = headerStream.format();
277 for (
label i = 1; i < blocki+1; i++)
281 is.
fatalCheck(
"read(Istream&) : reading entry");
283 string buf(data.begin(), data.size());
288 realIsPtr().version(ver);
304 Pout<<
"decomposedBlockData::readBlocks:" 305 <<
" stream:" << (isPtr.
valid() ? isPtr().name() :
"invalid")
307 <<
" comm:" << comm <<
endl;
322 is.
fatalCheck(
"read(Istream&) : reading entry");
334 is.
fatalCheck(
"read(Istream&) : reading entry");
379 is.
fatalCheck(
"read(Istream&) : reading entry");
391 is.
fatalCheck(
"read(Istream&) : reading entry");
425 Pout<<
"decomposedBlockData::readBlocks:" 426 <<
" stream:" << (isPtr.
valid() ? isPtr().name() :
"invalid")
445 is.
fatalCheck(
"read(Istream&) : reading entry");
447 string buf(data.begin(), data.size());
454 <<
"problem while reading header for object " 468 is.
fatalCheck(
"read(Istream&) : reading entry");
495 string buf(data.begin(), data.size());
516 is.
fatalCheck(
"read(Istream&) : reading entry");
518 string buf(data.begin(), data.size());
525 <<
"problem while reading header for object " 539 is.
fatalCheck(
"read(Istream&) : reading entry");
556 string buf(data.begin(), data.size());
564 string versionString(realIsPtr().version().str());
571 os << realIsPtr().format();
572 string formatString(os.
str());
574 realIsPtr().format(formatString);
596 const bool syncReturnState
601 Pout<<
"decomposedBlockData::writeBlocks:" 602 <<
" stream:" << (osPtr.
valid() ? osPtr().name() :
"invalid")
603 <<
" data:" << data.
size()
631 elems.
setSize(recvSizes[proci]);
642 os <<
nl <<
nl <<
"// Processor" << proci <<
nl;
667 gettimeofday(&tv,
nullptr);
668 Pout<<
"Starting sending at:" 669 << 1.0*tv.tv_sec+tv.tv_usec/1e6 <<
" s" 694 recvBufs[proci].
setSize(recvSizes[proci]);
699 recvBufs[proci].begin(),
709 gettimeofday(&tv,
nullptr);
710 Pout<<
"Starting master-only writing at:" 711 << 1.0*tv.tv_sec+tv.tv_usec/1e6 <<
" s" 715 start.
setSize(UPstream::nProcs(comm));
729 gettimeofday(&tv,
nullptr);
730 Pout<<
"Starting slave writing at:" 731 << 1.0*tv.tv_sec+tv.tv_usec/1e6 <<
" s" 738 os <<
nl <<
nl <<
"// Processor" << proci <<
nl;
743 os << recvBufs[proci];
755 gettimeofday(&tv,
nullptr);
756 Pout<<
"Finished master-only writing at:" 757 << 1.0*tv.tv_sec+tv.tv_usec/1e6 <<
" s" 783 return readBlocks(comm_, isPtr, data, commsType_);
793 reinterpret_cast<const char*>(data.
cbegin()),
815 formatString = os.
str();
827 fileName masterLocation(instance()/db().dbDir()/local());
837 io.headerClassName(),
872 return writeBlocks(comm_, osPtr, start, *
this, commsType_);
881 is.
fatalCheck(
"decomposedBlockData::numBlocks(const fileName&)");
889 token firstToken(is);
decomposedBlockData(const label comm, const IOobject &, const UPstream::commsTypes=UPstream::commsTypes::scheduled)
Construct given an IOobject.
A simple container for copying or transferring objects of type <T>.
virtual ~decomposedBlockData()
Destructor.
static bool readBlocks(const label comm, autoPtr< ISstream > &isPtr, List< char > &data, const UPstream::commsTypes commsType)
Read data into *this. ISstream is only valid on master.
static streamFormat formatEnum(const word &)
Return stream format of given format name.
virtual bool read()
Read object.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
static int masterNo()
Process index of the master.
const word & name() const
Return name.
A class for handling file names.
static Stream & writeBanner(Stream &os, bool noHint=false)
Write the standard OpenFOAM file/dictionary banner.
virtual bool writeData(Ostream &) const
Write separated content. Assumes content is the serialised data.
void finishedSends(const bool block=true)
Mark all sends as having been done. This will start receives.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by any number of values (e...
commsTypes
Types of communications.
const word & wordToken() const
static Stream & writeDivider(Stream &os)
Write the standard file section divider.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
void size(const label)
Override size to be inconsistent with allocated storage.
virtual void rename(const word &newName)
Rename.
A token holds items read from Istream.
static int myProcNo(const label communicator=0)
Number of this process (starting from masterNo() = 0)
const_iterator cbegin() const
Return const_iterator to begin traversing the constant UList.
void putBack(const token &)
Put back token.
Ostream & endl(Ostream &os)
Add newline and flush stream.
static label numBlocks(const fileName &)
Detect number of blocks in a file.
static bool master(const label communicator=0)
Am I the master process.
static bool writeBlocks(const label comm, autoPtr< OSstream > &osPtr, List< std::streamoff > &start, const UList< char > &, const UPstream::commsTypes, const bool syncReturnState=true)
Write *this. Ostream only valid on master. Returns starts of.
static bool finishedRequest(const label i)
Non-blocking comms: has request i finished?
static label nRequests()
Get number of outstanding requests.
static int & msgType()
Message tag of standard messages.
versionNumber version() const
Return the stream version.
bool good() const
Return true if next operation might succeed.
virtual Ostream & writeQuoted(const std::string &, const bool quoted=true)=0
Write std::string surrounded by quotes.
Input inter-processor communications stream.
Input inter-processor communications stream operating on external buffer.
bool readHeader(Istream &)
Read header.
string & note()
Return non-constant access to the optional note.
bool read(const char *, int32_t &)
void reset(T *=0)
If object pointer already set, delete object and set to given.
A class for handling words, derived from string.
virtual const fileName & name() const
Return the name of the stream.
static void writeHeader(Ostream &os, const IOstream::versionNumber version, const IOstream::streamFormat format, const word &type, const string ¬e, const fileName &location, const word &name)
Helper: write FoamFile IOobject header.
static void resetRequests(const label sz)
Truncate number of outstanding requests.
iterator begin()
Return an iterator to begin traversing the UList.
streamFormat
Enumeration for the format of data in the stream.
static const word null
An empty word.
const fileOperation & fileHandler()
Get current file handler.
streamFormat format() const
Return current stream format.
bool valid() const
Return true if the autoPtr valid (ie, the pointer is set)
void fatalCheck(const char *operation) const
Check IOstream status for given operation.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
static void scatter(const List< commsStruct > &comms, T &Value, const int tag, const label comm)
Scatter data. Distribute without modification. Reverse of gather.
compressionType
Enumeration for the format of data in the stream.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Output inter-processor communications stream operating on external buffer.
static label read(const commsTypes commsType, const int fromProcNo, char *buf, const std::streamsize bufSize, const int tag=UPstream::msgType(), const label communicator=0)
Read into given buffer from given processor and return the.
defineTypeNameAndDebug(combustionModel, 0)
static bool write(const commsTypes commsType, const int toProcNo, const char *buf, const std::streamsize bufSize, const int tag=UPstream::msgType(), const label communicator=0)
Write given buffer to given processor.
static const NamedEnum< commsTypes, 3 > commsTypeNames
Output inter-processor communications stream.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
static void waitRequests(const label start=0)
Wait until all requests (from start onwards) have finished.
word name(const complex &)
Return a string representation of a complex.
virtual bool writeObject(IOstream::streamFormat, IOstream::versionNumber, IOstream::compressionType, const bool valid) const
Write using given format, version and compression.
void operator=(const UList< T > &)
Assignment to UList operator. Takes linear time.
virtual ostream & stdStream()
Access to underlying std::ostream.
void setSize(const label)
Reset size of List.
static autoPtr< ISstream > readBlock(const label blocki, Istream &is, IOobject &headerIO)
Read selected block (non-seeking) + header information.
static label nProcs(const label communicator=0)
Number of processes in parallel run.
static Stream & writeEndDivider(Stream &os)
Write the standard end file divider.
static bool readMasterHeader(IOobject &, Istream &)
Read header. Call only on master.
#define WarningInFunction
Report a warning using Foam::Warning.
static const versionNumber currentVersion
Current version number.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
string str() const
Return the versionNumber as a character string.
std::streamsize byteSize() const
Return the binary size in number of characters of the UList.
Input from memory buffer stream.
prefixOSstream Pout(cout, "Pout")
string str() const
Return the string.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
bool writeHeader(Ostream &) const
Write header.
label size() const
Return the number of elements in the UList.
readOption readOpt() const
const word & headerClassName() const
Return name of the class name read from header.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
static void gatherList(const List< commsStruct > &comms, List< T > &Values, const int tag, const label comm)
Gather data but keep individual values separate.
Output to memory buffer stream.
void transfer(List< T > &)
Transfer the contents of the argument List into this list.
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.