Test-UniformField.C 1.71 KB
Newer Older
shunbo's avatar
shunbo committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
    \\  /    A nd           | www.openfoam.com
     \\/     M anipulation  |
-------------------------------------------------------------------------------
    Copyright (C) 2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM, distributed under GPL-3.0-or-later.

Application
    Test-UniformField

Description
    Test uniform list/field
\*---------------------------------------------------------------------------*/

#include "argList.H"
#include "vector.H"
#include "IOstreams.H"
#include "UniformField.H"

using namespace Foam;

template<class T>
void printInfo(const UniformList<T>& list, const label i=0)
{
    Info<< nl
        << "value: " << list.value() << nl
        << "cast:  " << static_cast<const T&>(list) << nl
        << "[" << i << "] = " << list[i] << nl;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//  Main program:

int main(int argc, char *argv[])
{
    {
        UniformField<scalar> fld(3.14159);

        printInfo(fld, -100);

        // Change value
        fld.value() *= 0.5;

        Info<< nl << "/= 2 " << nl;

        printInfo(fld, -100);
    }

    {
        UniformField<vector> fld(vector(1, 2, -1));

        printInfo(fld);

        // Change value
        fld.value() *= 0.5;

        Info<< nl << "/= 2 " << nl;

        printInfo(fld);
    }


    Info<< "\nEnd\n" << endl;

    return 0;
}

// ************************************************************************* //