ENH: RASModel.C: clipping input to log
[OpenFOAM-1.7.x.git] / src / sampling / sampledSet / coordSet / coordSet.C
bloba270d2fb1ddf7073c286003c4c19eb86c5a70546
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2010 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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 Description
26 \*---------------------------------------------------------------------------*/
28 #include "coordSet.H"
30 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
32 //- Construct from components
33 Foam::coordSet::coordSet
35     const word& name,
36     const word& axis
39     pointField(0),
40     name_(name),
41     axis_(axis),
42     refPoint_(vector::zero)
46 //- Construct from components
47 Foam::coordSet::coordSet
49     const word& name,
50     const word& axis,
51     const List<point>& points,
52     const point& refPoint
55     pointField(points),
56     name_(name),
57     axis_(axis),
58     refPoint_(refPoint)
62 //- Construct from components
63 Foam::coordSet::coordSet
65     const word& name,
66     const word& axis,
67     const scalarField& points,
68     const scalar refPoint
71     pointField(points.size(), point::zero),
72     name_(name),
73     axis_(axis),
74     refPoint_(point::zero)
76     if (axis_ == "x" || axis_ == "distance")
77     {
78         refPoint_.x() = refPoint;
79         replace(point::X, points);
80     }
81     else if (axis_ == "y")
82     {
83         replace(point::Y, points);
84     }
85     else if (axis_ == "z")
86     {
87         replace(point::Z, points);
88     }
89     else
90     {
91         FatalErrorIn
92         (
93             "coordSet::coordSet(const word& name,"
94             "const word& axis, const List<scalar>& points,"
95             "const scalar refPoint)"
96         )   << "Illegal axis specification " << axis_
97             << " for sampling line " << name_
98             << exit(FatalError);
99     }
103 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
105 bool Foam::coordSet::hasVectorAxis() const
107     return axis_ == "xyz";
111 Foam::scalar Foam::coordSet::scalarCoord
113     const label index
114 )   const
116     const point& p = operator[](index);
118     if (axis_ == "x")
119     {
120         return p.x();
121     }
122     else if (axis_ == "y")
123     {
124         return p.y();
125     }
126     else if (axis_ == "z")
127     {
128         return p.z();
129     }
130     else if (axis_ == "distance")
131     {
132         // Use distance to reference point
133         return mag(p - refPoint_);
134     }
135     else
136     {
137         FatalErrorIn
138         (
139             "coordSet::scalarCoord(const label)"
140         )   << "Illegal axis specification " << axis_
141             << " for sampling line " << name_
142             << exit(FatalError);
144         return 0;
145     }
149 Foam::point Foam::coordSet::vectorCoord(const label index) const
151     const point& p = operator[](index);
153     return p;
157 Foam::Ostream& Foam::coordSet::write(Ostream& os) const
159     os  << "name:" << name_ << " axis:" << axis_ << " reference:" << refPoint_
160         << endl
161         << endl << "\t(coord)"
162         << endl;
164     forAll(*this, sampleI)
165     {
166         os  << '\t' << operator[](sampleI) << endl;
167     }
169     return os;
173 // ************************************************************************* //