mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
BUG: decomposePar fails with csv table in binary (fixes #1498)
This commit is contained in:
committed by
Andrew Heather
parent
148317ab68
commit
b40d1d8e4f
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2016-2017 OpenCFD Ltd.
|
Copyright (C) 2016-2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -28,7 +28,6 @@ License
|
|||||||
|
|
||||||
#include "CSV.H"
|
#include "CSV.H"
|
||||||
#include "DynamicList.H"
|
#include "DynamicList.H"
|
||||||
//#include "IFstream.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -36,7 +35,7 @@ template<>
|
|||||||
Foam::label Foam::Function1Types::CSV<Foam::label>::readValue
|
Foam::label Foam::Function1Types::CSV<Foam::label>::readValue
|
||||||
(
|
(
|
||||||
const List<string>& splitted
|
const List<string>& splitted
|
||||||
)
|
) const
|
||||||
{
|
{
|
||||||
if (componentColumns_[0] >= splitted.size())
|
if (componentColumns_[0] >= splitted.size())
|
||||||
{
|
{
|
||||||
@ -54,7 +53,7 @@ template<>
|
|||||||
Foam::scalar Foam::Function1Types::CSV<Foam::scalar>::readValue
|
Foam::scalar Foam::Function1Types::CSV<Foam::scalar>::readValue
|
||||||
(
|
(
|
||||||
const List<string>& splitted
|
const List<string>& splitted
|
||||||
)
|
) const
|
||||||
{
|
{
|
||||||
if (componentColumns_[0] >= splitted.size())
|
if (componentColumns_[0] >= splitted.size())
|
||||||
{
|
{
|
||||||
@ -69,7 +68,10 @@ Foam::scalar Foam::Function1Types::CSV<Foam::scalar>::readValue
|
|||||||
|
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
Type Foam::Function1Types::CSV<Type>::readValue(const List<string>& splitted)
|
Type Foam::Function1Types::CSV<Type>::readValue
|
||||||
|
(
|
||||||
|
const List<string>& splitted
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
Type result;
|
Type result;
|
||||||
|
|
||||||
@ -94,7 +96,6 @@ template<class Type>
|
|||||||
void Foam::Function1Types::CSV<Type>::read()
|
void Foam::Function1Types::CSV<Type>::read()
|
||||||
{
|
{
|
||||||
fileName expandedFile(fName_);
|
fileName expandedFile(fName_);
|
||||||
//IFstream is(expandedFile.expand());
|
|
||||||
autoPtr<ISstream> isPtr(fileHandler().NewIFstream(expandedFile.expand()));
|
autoPtr<ISstream> isPtr(fileHandler().NewIFstream(expandedFile.expand()));
|
||||||
ISstream& is = isPtr();
|
ISstream& is = isPtr();
|
||||||
|
|
||||||
@ -214,17 +215,24 @@ Foam::Function1Types::CSV<Type>::CSV
|
|||||||
TableBase<Type>(entryName, dict),
|
TableBase<Type>(entryName, dict),
|
||||||
nHeaderLine_(dict.get<label>("nHeaderLine")),
|
nHeaderLine_(dict.get<label>("nHeaderLine")),
|
||||||
refColumn_(dict.get<label>("refColumn")),
|
refColumn_(dict.get<label>("refColumn")),
|
||||||
componentColumns_(dict.lookup("componentColumns")),
|
componentColumns_(),
|
||||||
separator_(dict.lookupOrDefault<string>("separator", ",")[0]),
|
separator_(dict.getOrDefault<string>("separator", ",")[0]),
|
||||||
mergeSeparators_(dict.get<bool>("mergeSeparators")),
|
mergeSeparators_(dict.get<bool>("mergeSeparators")),
|
||||||
fName_(fName.empty() ? dict.get<fileName>("file") : fName)
|
fName_(fName.empty() ? dict.get<fileName>("file") : fName)
|
||||||
{
|
{
|
||||||
|
// Writing of "componentColumns" was forced to be ASCII,
|
||||||
|
// do the same when reading
|
||||||
|
ITstream& is = dict.lookup("componentColumns");
|
||||||
|
is.format(IOstream::ASCII);
|
||||||
|
is >> componentColumns_;
|
||||||
|
dict.checkITstream(is, "componentColumns");
|
||||||
|
|
||||||
if (componentColumns_.size() != pTraits<Type>::nComponents)
|
if (componentColumns_.size() != pTraits<Type>::nComponents)
|
||||||
{
|
{
|
||||||
FatalErrorInFunction
|
FatalIOErrorInFunction(dict)
|
||||||
<< componentColumns_ << " does not have the expected length of "
|
<< componentColumns_ << " does not have the expected length of "
|
||||||
<< pTraits<Type>::nComponents << endl
|
<< pTraits<Type>::nComponents << nl
|
||||||
<< exit(FatalError);
|
<< exit(FatalIOError);
|
||||||
}
|
}
|
||||||
|
|
||||||
read();
|
read();
|
||||||
@ -246,13 +254,6 @@ Foam::Function1Types::CSV<Type>::CSV(const CSV<Type>& csv)
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
template<class Type>
|
|
||||||
Foam::Function1Types::CSV<Type>::~CSV()
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2017 OpenCFD Ltd.
|
Copyright (C) 2017-2019 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -105,7 +105,7 @@ class CSV
|
|||||||
void read();
|
void read();
|
||||||
|
|
||||||
//- Read the next value from the splitted string
|
//- Read the next value from the splitted string
|
||||||
Type readValue(const List<string>&);
|
Type readValue(const List<string>& splitted) const;
|
||||||
|
|
||||||
//- No copy assignment
|
//- No copy assignment
|
||||||
void operator=(const CSV<Type>&) = delete;
|
void operator=(const CSV<Type>&) = delete;
|
||||||
@ -138,7 +138,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
//- Destructor
|
//- Destructor
|
||||||
virtual ~CSV();
|
virtual ~CSV() = default;
|
||||||
|
|
||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
@ -151,13 +151,6 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template<>
|
|
||||||
label CSV<label>::readValue(const List<string>& splitted);
|
|
||||||
|
|
||||||
template<>
|
|
||||||
Foam::scalar CSV<scalar>::readValue(const List<string>& splitted);
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
} // End namespace Function1Types
|
} // End namespace Function1Types
|
||||||
|
|||||||
@ -33,7 +33,7 @@ writeInterval 0.02;
|
|||||||
|
|
||||||
purgeWrite 0;
|
purgeWrite 0;
|
||||||
|
|
||||||
writeFormat ascii;
|
writeFormat binary;
|
||||||
|
|
||||||
writePrecision 10;
|
writePrecision 10;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user