31 Foam::fileName Foam::surfaceWriters::ensightWriter::writeCollated()
46 const word& fieldName,
51 const bool geomChanged = (!upToDate_);
72 const int maskWidth = 8;
73 const char* mask =
"data/********/";
77 const fileName baseDir = outputPath_;
80 const scalar timeValue = currTime_.value();
82 const fileName outputFile = baseDir / surfName +
".case";
86 Info<<
"Writing case file to " << outputFile <<
nl;
90 tmp<Field<Type>> tfield = adjustField(fieldName, mergeField(localValues));
98 const meshedSurfRef& surf = adjustSurface();
107 const bool stateChanged =
120 const label
timeIndex = caching_.latestTimeIndex();
121 const label geomIndex = caching_.latestGeomIndex();
126 const fileName geometryName
135 const fileName dataDir
144 const fileName geomFile(baseDir/geometryName);
147 ensightOutputSurface part
158 Info<<
"Writing geometry to " << geomFile.name() <<
endl;
162 ensightGeoFile osGeom
169 osGeom.beginGeometry();
183 Info<<
"Writing field file to " << osField.name() <<
endl;
189 part.writeData(osField, tfield(), this->isPointData());
205 Info<<
"Writing case file to " << osCase.name() <<
endl;
213 const label tsGeom = caching_.geometryTimeset();
217 <<
"type: ensight gold" <<
nl 226 <<
"model: " << tsGeom <<
" " 227 << mask << geometryName.name() <<
nl;
234 << geometryName.c_str() <<
nl;
242 for (
const entry& dEntry : caching_.fieldsDict())
246 const string varType(subDict.get<
string>(
"type"));
249 subDict.getOrDefault<word>
264 <<
setw(15) << varName <<
' ' 265 << mask << ensight::FileName(varName).c_str() <<
nl;
280 caching_.geometries()
284 osCase <<
"# end" <<
nl;
289 OFstream timeStamp(dataDir/
"time");
291 <<
"# timestep time" <<
nl 292 << dataDir.name() <<
' ' << timeValue <<
nl;
static void printTimeset(OSstream &os, const label ts, const scalar timeValue)
Print time-set for ensight case file with a single time.
A class for handling file names.
static void setTimeFormat(OSstream &os, IOstreamOption::floatFormat timeFmt, const int timePrec)
Set output time format for ensight case file.
Specification of a valid Ensight file-name.
constexpr char nl
The newline '\n' character (0x0a)
static const fileName null
An empty fileName.
Ostream & endl(Ostream &os)
Add newline and flush stream.
static std::string path(const std::string &str)
Return directory path name (part before last /)
bool wroteGeom_
Track if geometry has been written since the last open.
bool isDir(const fileName &name, const bool followLink=true)
Does the name exist as a DIRECTORY in the file system?
bool mkDir(const fileName &pathName, mode_t mode=0777)
Make a directory and return an error if it could not be created.
Generic templated field type.
A class for handling words, derived from Foam::string.
static const char * geometryName
The name for geometry files: "geometry".
bool exists(const fileName &name, const bool checkGzip=true, const bool followLink=true)
Does the name exist (as DIRECTORY or FILE) in the file system?
virtual bool write(const token &tok)=0
Write token to stream or otherwise handle it.
const char *const typeName
Specification of a valid Ensight variable-name.
static word padded(const int nwidth, const label index)
Stringified zero-padded integer value of specified width.
static bool master(const label communicator=worldComm)
True if process corresponds to the master rank in the communicator.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Omanip< int > setw(const int i)
A class for managing temporary objects.