initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / applications / test / UIndirectListTest / UIndirectListTest.C
blob6902f47eeab4e2ddf1c744606f5cc1a1387a78a7
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Description
27 \*---------------------------------------------------------------------------*/
29 #include "UIndirectList.H"
30 #include "DynamicList.H"
31 #include "IOstreams.H"
32 #include "ListOps.H"
33 #include "OFstream.H"
35 using namespace Foam;
37 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
38 // Main program:
40 int main(int argc, char *argv[])
42     List<double> completeList(10);
44     forAll(completeList, i)
45     {
46         completeList[i] = 0.1*i;
47     }
49     List<label> addresses(5);
50     addresses[0] = 1;
51     addresses[1] = 0;
52     addresses[2] = 7;
53     addresses[3] = 8;
54     addresses[4] = 5;
56     UIndirectList<double> idl(completeList, addresses);
58     Info<< idl << "\n";
60     idl[1] = -666;
62     Info<< "idl[1] changed: " << idl << endl;
64     idl = -999;
66     Info<< "idl changed: " << idl << endl;
68     UIndirectList<double> idl2(idl);
70     Info<< "idl2: " << idl2 << endl;
73     {
74         List<double> ident(idl.size());
76         forAll(ident, i)
77         {
78             ident[i] = ident.size() - i;
79         }
80         idl = ident;
81     }
83     Info<< "idl assigned from UList: " << idl << endl;
85     // test List operations
87     List<double> flatList = UIndirectList<double>(completeList, addresses);
88     Info<< "List assigned from UIndirectList: " << flatList << endl;
90     List<double> flatList2(UIndirectList<double>(completeList, addresses));
91     Info<< "List constructed from UIndirectList: " << flatList2 << endl;
93     flatList.append(UIndirectList<double>(completeList, addresses));
94     Info<< "List::append(UIndirectList): " << flatList << endl;
97     DynamicList<double> dynList(UIndirectList<double>(completeList, addresses));
98     Info<< "DynamicList constructed from UIndirectList: " << dynList << endl;
100     dynList.append(UIndirectList<double>(completeList, addresses));
101     Info<< "DynamicList::append(UIndirectList): " << dynList << endl;
103     Info << "\nEnd\n" << endl;
105     return 0;
109 // ************************************************************************* //