reading particle position from file for partilclesPhasicFlow

This commit is contained in:
HRN 2025-02-24 13:55:56 +03:30
parent 05b256ba39
commit b44c4de3f6
4 changed files with 51 additions and 11 deletions

View File

@ -69,7 +69,7 @@ pFlow::ioErrorMessage(
) )
{ {
errorStream << "\n>>> Fatal IO file error\n" errorStream << "\n>>> Fatal IO file error\n"
<< " IO error at number " << Red_Text(fileLineNumber) << " IO error at number " << Red_Text(fileLineNumber+1)
<< " of file " << Red_Text(fileName) << '\n'; << " of file " << Red_Text(fileName) << '\n';
errorStream << " IO operation is peformed from function " errorStream << " IO operation is peformed from function "
<< Red_Text(fnName) << " in file " << Red_Text(fName) << Red_Text(fnName) << " in file " << Red_Text(fName)

View File

@ -356,7 +356,7 @@ public:
/// Token is WORD, DIRECTIVE, STRING, VARIABLE or VERBATIM /// Token is WORD, DIRECTIVE, STRING, VARIABLE or VERBATIM
inline bool isStringType() const; inline bool isStringType() const;
inline bool isComma()const;
//- Access //- Access
/// Return boolean token value. /// Return boolean token value.

View File

@ -673,6 +673,13 @@ inline bool pFlow::token::isStringType() const
return (isWord() || isString()); return (isWord() || isString());
} }
inline bool pFlow::token::isComma()const
{
if( type_ == tokenType::PUNCTUATION &&
pToken() == punctuationToken::COMMA) return true;
return false;
}
inline void pFlow::token::setBad() inline void pFlow::token::setBad()
{ {
reset(); reset();

View File

@ -42,39 +42,72 @@ bool pFlow::positionFile::positionPointsFile()
token tok; token tok;
while (!is.eof() || !is.bad()) while (!is.bad())
{ {
// read position x // read position x
is >> tempPoint.x_;
is >> tok;
if(tok.good()&& tok.isNumber()&& !is.eof())
{
tempPoint.x() = tok.realToken();
}
else
{
ioErrorInFile(is.name(), is.lineNumber())<< "Bad char or end of file in reading position x!\n";
return false;
}
if(commaSeparated_) if(commaSeparated_)
{ {
is >> tok; is >> tok;
if(tok.type() != token::COMMA) if( !tok.isComma() || is.eof())
{ {
fatalErrorInFunction << "Error datafile format, the data not comma separated!"; ioErrorInFile(is.name(), is.lineNumber())<< "Bad char or end of file in reading comma!\n";
return false; return false;
} }
} }
// read position y // read position y
is >> tempPoint.y_; is >> tok;
if(tok.good()&& tok.isNumber()&& !is.eof())
{
tempPoint.y() = tok.realToken();
}
else
{
ioErrorInFile(is.name(), is.lineNumber())<< "Bad char or end of file in reading position y!\n";
return false;
}
if(commaSeparated_) if(commaSeparated_)
{ {
is >> tok; is >> tok;
if(tok.type() != token::COMMA) if(!tok.isComma() || is.eof())
{ {
fatalErrorInFunction << "Error datafile format, the data not comma separated!"; ioErrorInFile(is.name(), is.lineNumber())<< "Bad char or end of file in reading comma!\n";
return false; return false;
} }
} }
// read position z // read position z
is >> tempPoint.z_; is >> tok;
if(tok.good()&& tok.isNumber()&& !is.eof())
{
tempPoint.z() = tok.realToken();
}
else
{
ioErrorInFile(is.name(), is.lineNumber())<< "Bad char or end of file in reading position z!\n";
return false;
}
// insert position data to vector // insert position data to vector
position_.push_back(tempPoint); position_.push_back(tempPoint);
is>>tok;
if(is.eof()) break;
is.putBack(tok);
} }
REPORT(0) << "Done!" << END_REPORT; REPORT(0) << "Done!" << END_REPORT;
@ -104,7 +137,7 @@ pFlow::positionFile::positionFile
position_ position_
( (
"position", "position",
max(maxNumberOfParticles(), position_.size()), 1,
0, 0,
RESERVE() RESERVE()
) )