diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files index 0318aa7e39..2ea9004636 100644 --- a/src/OpenFOAM/Make/files +++ b/src/OpenFOAM/Make/files @@ -74,9 +74,13 @@ containers/LinkedLists/linkTypes/DLListBase/DLListBase.C primitiveLists = primitives/Lists $(primitiveLists)/boolList.C $(primitiveLists)/labelIOList.C +$(primitiveLists)/labelListIOList.C $(primitiveLists)/scalarList.C $(primitiveLists)/scalarIOList.C +$(primitiveLists)/scalarListIOList.C $(primitiveLists)/vectorList.C +$(primitiveLists)/vectorIOList.C +$(primitiveLists)/vectorListIOList.C $(primitiveLists)/sphericalTensorList.C $(primitiveLists)/symmTensorList.C $(primitiveLists)/tensorList.C @@ -486,9 +490,12 @@ $(Fields)/symmTensorField/symmTensorField.C $(Fields)/tensorField/tensorField.C $(Fields)/complexFields/complexFields.C -$(Fields)/labelField/labelIOField.C +$(Fields)/labelField/labelIOField. +$(Fields)/labelField/labelFieldIOField.C $(Fields)/scalarField/scalarIOField.C +$(Fields)/scalarField/scalarFieldIOField.C $(Fields)/vectorField/vectorIOField.C +$(Fields)/vectorField/vectorFieldIOField.C $(Fields)/vector2DField/vector2DIOField.C $(Fields)/sphericalTensorField/sphericalTensorIOField.C $(Fields)/diagTensorField/diagTensorIOField.C diff --git a/src/OpenFOAM/db/IOobjects/IOFieldField/IOFieldField.C b/src/OpenFOAM/db/IOobjects/IOFieldField/IOFieldField.C new file mode 100644 index 0000000000..db16414701 --- /dev/null +++ b/src/OpenFOAM/db/IOobjects/IOFieldField/IOFieldField.C @@ -0,0 +1,289 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "IOFieldField.H" +#include "labelList.H" + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +template +void Foam::IOFieldField::readFromStream() +{ + Istream& is = readStream(word::null); + + if (headerClassName() == IOField::typeName) + { + is >> static_cast&>(*this); + close(); + } + else if (headerClassName() == typeName) + { + is >> *this; + close(); + } + else + { + FatalIOErrorIn + ( + "IOFieldField::readFromStream()", + is + ) << "unexpected class name " << headerClassName() + << " expected " << typeName << " or " << IOField::typeName + << endl + << " while reading object " << name() + << exit(FatalIOError); + } +} + + +// * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * * // + +template +Foam::IOFieldField::IOFieldField(const IOobject& io) +: + regIOobject(io) +{ + if + ( + io.readOpt() == IOobject::MUST_READ + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readFromStream(); + } +} + + +template +Foam::IOFieldField::IOFieldField +( + const IOobject& io, + const label size +) +: + regIOobject(io) +{ + if + ( + io.readOpt() == IOobject::MUST_READ + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readFromStream(); + } + else + { + Field::setSize(size); + } +} + + +template +Foam::IOFieldField::IOFieldField +( + const IOobject& io, + const Field& list +) +: + regIOobject(io) +{ + if + ( + io.readOpt() == IOobject::MUST_READ + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readFromStream(); + } + else + { + Field::operator=(list); + } +} + + +template +Foam::IOFieldField::IOFieldField +( + const IOobject& io, + const Xfer >& list +) +: + regIOobject(io) +{ + Field::transfer(list()); + + if + ( + io.readOpt() == IOobject::MUST_READ + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readFromStream(); + } +} + + +// * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * * // + +template +Foam::IOFieldField::~IOFieldField() +{} + + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template +bool Foam::IOFieldField::writeObject +( + IOstream::streamFormat fmt, + IOstream::versionNumber ver, + IOstream::compressionType cmp +) const +{ + if (fmt == IOstream::ASCII) + { + // Change type to be non-compact format type + const word oldTypeName = typeName; + + const_cast(typeName) = IOField::typeName; + + bool good = regIOobject::writeObject(fmt, ver, cmp); + + // Change type back + const_cast(typeName) = oldTypeName; + + return good; + } + else + { + return regIOobject::writeObject(fmt, ver, cmp); + } +} + + +template +bool Foam::IOFieldField::writeData(Ostream& os) const +{ + return (os << *this).good(); +} + + +// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // + +template +void Foam::IOFieldField::operator= +( + const IOFieldField& rhs +) +{ + Field::operator=(rhs); +} + + +template +void Foam::IOFieldField::operator=(const Field& rhs) +{ + Field::operator=(rhs); +} + + +// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * // + +template +Foam::Istream& Foam::operator>> +( + Foam::Istream& is, + Foam::IOFieldField& L +) +{ + // Read compact + const labelList start(is); + const Field elems(is); + + // Convert + L.setSize(start.size()-1); + + forAll(L, i) + { + T& subField = L[i]; + + label index = start[i]; + subField.setSize(start[i+1] - index); + + forAll(subField, j) + { + subField[j] = elems[index++]; + } + } + + return is; +} + + +template +Foam::Ostream& Foam::operator<< +( + Foam::Ostream& os, + const Foam::IOFieldField& L +) +{ + // Keep ascii writing same. + if (os.format() == IOstream::ASCII) + { + os << static_cast&>(L); + } + else + { + // Convert to compact format + labelList start(L.size()+1); + + start[0] = 0; + for (label i = 1; i < start.size(); i++) + { + start[i] = start[i-1]+L[i-1].size(); + } + + Field elems(start[start.size()-1]); + + label elemI = 0; + forAll(L, i) + { + const T& subField = L[i]; + + forAll(subField, j) + { + elems[elemI++] = subField[j]; + } + } + os << start << elems; + } + + return os; +} + + +// ************************************************************************* // diff --git a/src/OpenFOAM/db/IOobjects/IOFieldField/IOFieldField.H b/src/OpenFOAM/db/IOobjects/IOFieldField/IOFieldField.H new file mode 100644 index 0000000000..2174d2d469 --- /dev/null +++ b/src/OpenFOAM/db/IOobjects/IOFieldField/IOFieldField.H @@ -0,0 +1,155 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::IOFieldField + +Description + A Field of objects of type \ with automated input and output. + +SourceFiles + IOFieldField.C + +\*---------------------------------------------------------------------------*/ + +#ifndef IOFieldField_H +#define IOFieldField_H + +#include "IOField.H" +#include "regIOobject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +class Istream; +class Ostream; + +// Forward declaration of friend functions and operators +template class IOFieldField; + +template Istream& operator>> +( + Istream&, + IOFieldField& +); +template Ostream& operator<< +( + Ostream&, + const IOFieldField& +); + +/*---------------------------------------------------------------------------*\ + Class IOFieldField Declaration +\*---------------------------------------------------------------------------*/ + +template +class IOFieldField +: + public regIOobject, + public Field +{ + // Private Member Functions + + //- Read according to header type + void readFromStream(); + +public: + + //- Runtime type information + TypeName("FieldField"); + + + // Constructors + + //- Construct from IOobject + IOFieldField(const IOobject&); + + //- Construct from IOobject and size of IOFieldField + IOFieldField(const IOobject&, const label); + + //- Construct from IOobject and a Field + IOFieldField(const IOobject&, const Field&); + + //- Construct by transferring the Field contents + IOFieldField(const IOobject&, const Xfer >&); + + + // Destructor + + virtual ~IOFieldField(); + + + // Member functions + + virtual bool writeObject + ( + IOstream::streamFormat, + IOstream::versionNumber, + IOstream::compressionType + ) const; + + virtual bool writeData(Ostream&) const; + + + // Member operators + + void operator=(const IOFieldField&); + + void operator=(const Field&); + + + // IOstream operators + + //- Read Field from Istream, discarding contents of existing Field. + friend Istream& operator>> + ( + Istream&, + IOFieldField& + ); + + // Write Field to Ostream. + friend Ostream& operator<< + ( + Ostream&, + const IOFieldField& + ); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository +# include "IOFieldField.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/OpenFOAM/db/IOobjects/IOListList/IOListList.C b/src/OpenFOAM/db/IOobjects/IOListList/IOListList.C new file mode 100644 index 0000000000..0f1b320195 --- /dev/null +++ b/src/OpenFOAM/db/IOobjects/IOListList/IOListList.C @@ -0,0 +1,285 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "IOListList.H" +#include "labelList.H" + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +template +void Foam::IOListList::readFromStream() +{ + Istream& is = readStream(word::null); + + if (headerClassName() == IOList::typeName) + { + is >> static_cast&>(*this); + close(); + } + else if (headerClassName() == typeName) + { + is >> *this; + close(); + } + else + { + FatalIOErrorIn + ( + "IOListList::readFromStream()", + is + ) << "unexpected class name " << headerClassName() + << " expected " << typeName << " or " << IOList::typeName + << endl + << " while reading object " << name() + << exit(FatalIOError); + } +} + + +// * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * * // + +template +Foam::IOListList::IOListList(const IOobject& io) +: + regIOobject(io) +{ + if + ( + io.readOpt() == IOobject::MUST_READ + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readFromStream(); + } +} + + +template +Foam::IOListList::IOListList(const IOobject& io, const label size) +: + regIOobject(io) +{ + if + ( + io.readOpt() == IOobject::MUST_READ + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readFromStream(); + } + else + { + List::setSize(size); + } +} + + +template +Foam::IOListList::IOListList +( + const IOobject& io, + const List& list +) +: + regIOobject(io) +{ + if + ( + io.readOpt() == IOobject::MUST_READ + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readFromStream(); + } + else + { + List::operator=(list); + } +} + + +template +Foam::IOListList::IOListList +( + const IOobject& io, + const Xfer >& list +) +: + regIOobject(io) +{ + List::transfer(list()); + + if + ( + io.readOpt() == IOobject::MUST_READ + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readFromStream(); + } +} + + +// * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * * // + +template +Foam::IOListList::~IOListList() +{} + + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template +bool Foam::IOListList::writeObject +( + IOstream::streamFormat fmt, + IOstream::versionNumber ver, + IOstream::compressionType cmp +) const +{ + if (fmt == IOstream::ASCII) + { + // Change type to be non-compact format type + const word oldTypeName = typeName; + + const_cast(typeName) = IOList::typeName; + + bool good = regIOobject::writeObject(fmt, ver, cmp); + + // Change type back + const_cast(typeName) = oldTypeName; + + return good; + } + else + { + return regIOobject::writeObject(fmt, ver, cmp); + } +} + + +template +bool Foam::IOListList::writeData(Ostream& os) const +{ + return (os << *this).good(); +} + + +// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // + +template +void Foam::IOListList::operator= +( + const IOListList& rhs +) +{ + List::operator=(rhs); +} + + +template +void Foam::IOListList::operator=(const List& rhs) +{ + List::operator=(rhs); +} + + +// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * // + +template +Foam::Istream& Foam::operator>> +( + Foam::Istream& is, + Foam::IOListList& L +) +{ + // Read compact + const labelList start(is); + const List elems(is); + + // Convert + L.setSize(start.size()-1); + + forAll(L, i) + { + T& subList = L[i]; + + label index = start[i]; + subList.setSize(start[i+1] - index); + + forAll(subList, j) + { + subList[j] = elems[index++]; + } + } + + return is; +} + + +template +Foam::Ostream& Foam::operator<< +( + Foam::Ostream& os, + const Foam::IOListList& L +) +{ + // Keep ascii writing same. + if (os.format() == IOstream::ASCII) + { + os << static_cast&>(L); + } + else + { + // Convert to compact format + labelList start(L.size()+1); + + start[0] = 0; + for (label i = 1; i < start.size(); i++) + { + start[i] = start[i-1]+L[i-1].size(); + } + + List elems(start[start.size()-1]); + + label elemI = 0; + forAll(L, i) + { + const T& subList = L[i]; + + forAll(subList, j) + { + elems[elemI++] = subList[j]; + } + } + os << start << elems; + } + + return os; +} + + +// ************************************************************************* // diff --git a/src/OpenFOAM/db/IOobjects/IOListList/IOListList.H b/src/OpenFOAM/db/IOobjects/IOListList/IOListList.H new file mode 100644 index 0000000000..b5bd103183 --- /dev/null +++ b/src/OpenFOAM/db/IOobjects/IOListList/IOListList.H @@ -0,0 +1,155 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::IOListList + +Description + A List of objects of type \ with automated input and output. + +SourceFiles + IOListList.C + +\*---------------------------------------------------------------------------*/ + +#ifndef IOListList_H +#define IOListList_H + +#include "IOList.H" +#include "regIOobject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +class Istream; +class Ostream; + +// Forward declaration of friend functions and operators +template class IOListList; + +template Istream& operator>> +( + Istream&, + IOListList& +); +template Ostream& operator<< +( + Ostream&, + const IOListList& +); + +/*---------------------------------------------------------------------------*\ + Class IOListList Declaration +\*---------------------------------------------------------------------------*/ + +template +class IOListList +: + public regIOobject, + public List +{ + // Private Member Functions + + //- Read according to header type + void readFromStream(); + +public: + + //- Runtime type information + TypeName("ListList"); + + + // Constructors + + //- Construct from IOobject + IOListList(const IOobject&); + + //- Construct from IOobject and size of IOListList + IOListList(const IOobject&, const label); + + //- Construct from IOobject and a List + IOListList(const IOobject&, const List&); + + //- Construct by transferring the List contents + IOListList(const IOobject&, const Xfer >&); + + + // Destructor + + virtual ~IOListList(); + + + // Member functions + + virtual bool writeObject + ( + IOstream::streamFormat, + IOstream::versionNumber, + IOstream::compressionType + ) const; + + virtual bool writeData(Ostream&) const; + + + // Member operators + + void operator=(const IOListList&); + + void operator=(const List&); + + + // IOstream operators + + //- Read List from Istream, discarding contents of existing List. + friend Istream& operator>> + ( + Istream&, + IOListList& + ); + + // Write List to Ostream. + friend Ostream& operator<< + ( + Ostream&, + const IOListList& + ); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository +# include "IOListList.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/OpenFOAM/fields/Fields/labelField/labelFieldIOField.C b/src/OpenFOAM/fields/Fields/labelField/labelFieldIOField.C new file mode 100644 index 0000000000..fe464093d7 --- /dev/null +++ b/src/OpenFOAM/fields/Fields/labelField/labelFieldIOField.C @@ -0,0 +1,50 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Description + labelField with IO. + +\*---------------------------------------------------------------------------*/ + +#include "labelFieldIOField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + defineTemplateTypeNameAndDebugWithName + ( + labelFieldIOField, + "labelFieldField", + 0 + ); + + defineTemplateTypeNameAndDebugWithName + ( + labelIOFieldField, + "labelCompactFieldField", + 0 + ); +} + +// ************************************************************************* // diff --git a/src/OpenFOAM/fields/Fields/labelField/labelFieldIOField.H b/src/OpenFOAM/fields/Fields/labelField/labelFieldIOField.H new file mode 100644 index 0000000000..76dda2c2f1 --- /dev/null +++ b/src/OpenFOAM/fields/Fields/labelField/labelFieldIOField.H @@ -0,0 +1,51 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Typedef + Foam::labelFieldIOField + +Description + labelFieldField with IO. + +\*---------------------------------------------------------------------------*/ + +#ifndef labelFieldIOField_H +#define labelFieldIOField_H + +#include "labelField.H" +#include "IOField.H" +#include "IOFieldField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef IOField labelFieldIOField; + typedef IOFieldField labelIOFieldField; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/OpenFOAM/fields/Fields/scalarField/scalarFieldIOField.C b/src/OpenFOAM/fields/Fields/scalarField/scalarFieldIOField.C new file mode 100644 index 0000000000..4c724f2b60 --- /dev/null +++ b/src/OpenFOAM/fields/Fields/scalarField/scalarFieldIOField.C @@ -0,0 +1,50 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Description + scalarField with IO. + +\*---------------------------------------------------------------------------*/ + +#include "scalarFieldIOField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + defineTemplateTypeNameAndDebugWithName + ( + scalarFieldIOField, + "scalarFieldField", + 0 + ); + + defineTemplateTypeNameAndDebugWithName + ( + scalarIOFieldField, + "scalarCompactFieldField", + 0 + ); +} + +// ************************************************************************* // diff --git a/src/OpenFOAM/fields/Fields/scalarField/scalarFieldIOField.H b/src/OpenFOAM/fields/Fields/scalarField/scalarFieldIOField.H new file mode 100644 index 0000000000..ad0ade1446 --- /dev/null +++ b/src/OpenFOAM/fields/Fields/scalarField/scalarFieldIOField.H @@ -0,0 +1,51 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Typedef + Foam::scalarFieldIOField + +Description + scalarFieldField with IO. + +\*---------------------------------------------------------------------------*/ + +#ifndef scalarFieldIOField_H +#define scalarFieldIOField_H + +#include "scalarField.H" +#include "IOField.H" +#include "IOFieldField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef IOField scalarFieldIOField; + typedef IOFieldField scalarIOFieldField; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/OpenFOAM/fields/Fields/vectorField/vectorFieldIOField.C b/src/OpenFOAM/fields/Fields/vectorField/vectorFieldIOField.C new file mode 100644 index 0000000000..b28fa1eefb --- /dev/null +++ b/src/OpenFOAM/fields/Fields/vectorField/vectorFieldIOField.C @@ -0,0 +1,50 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Description + vectorField with IO. + +\*---------------------------------------------------------------------------*/ + +#include "vectorFieldIOField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + defineTemplateTypeNameAndDebugWithName + ( + vectorFieldIOField, + "vectorFieldField", + 0 + ); + + defineTemplateTypeNameAndDebugWithName + ( + vectorIOFieldField, + "vectorCompactFieldField", + 0 + ); +} + +// ************************************************************************* // diff --git a/src/OpenFOAM/fields/Fields/vectorField/vectorFieldIOField.H b/src/OpenFOAM/fields/Fields/vectorField/vectorFieldIOField.H new file mode 100644 index 0000000000..a029e33fd7 --- /dev/null +++ b/src/OpenFOAM/fields/Fields/vectorField/vectorFieldIOField.H @@ -0,0 +1,51 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Typedef + Foam::vectorFieldIOField + +Description + vectorFieldField with IO. + +\*---------------------------------------------------------------------------*/ + +#ifndef vectorFieldIOField_H +#define vectorFieldIOField_H + +#include "vectorField.H" +#include "IOField.H" +#include "IOFieldField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef IOField vectorFieldIOField; + typedef IOFieldField vectorIOFieldField; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/OpenFOAM/primitives/Lists/labelIOList.C b/src/OpenFOAM/primitives/Lists/labelIOList.C index 0d91c9947c..6fd10f9ef9 100644 --- a/src/OpenFOAM/primitives/Lists/labelIOList.C +++ b/src/OpenFOAM/primitives/Lists/labelIOList.C @@ -37,7 +37,6 @@ namespace Foam addCompoundToRunTimeSelectionTable(List