freePiston.C
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2017 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26\*---------------------------------------------------------------------------*/
27
28#include "freePiston.H"
30
31// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
32
33namespace Foam
34{
37}
38
39
40// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
41
43(
44 const word& name,
45 const fileName& rootPath,
46 const fileName& caseName,
47 const fileName& systemName,
48 const fileName& constantName,
49 const fileName& dictName
50)
51:
53 (
54 name,
55 rootPath,
56 caseName,
57 systemName,
58 constantName
59 ),
60 pistonPositionTime_
61 (
62 Function1<scalar>::New("pistonPositionTime", dict_)
63 )
64{}
65
66
67// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
68
69Foam::scalar Foam::freePiston::theta() const
70{
71 return value();
72}
73
74
76{
77 return " s";
78}
79
80
81Foam::scalar Foam::freePiston::deltaTheta() const
82{
83 return deltaTValue();
84}
85
86
87Foam::scalar Foam::freePiston::pistonPosition(const scalar theta) const
88{
89 return pistonPositionTime_->value(theta);
90}
91
92
93// ************************************************************************* //
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a c...
Definition: Function1.H:96
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
const Type & value() const
Return const reference to value.
An abstract class for the time description of the piston motion.
Definition: engineTime.H:57
dimensionedScalar pistonPosition() const
Return current piston position.
Definition: engineTime.C:94
A class for handling file names.
Definition: fileName.H:76
In case of free pistons, the piston position is determined by a user-defined position according to ti...
Definition: freePiston.H:76
virtual scalar theta() const
Return current engine time.
Definition: freePiston.C:69
virtual scalar deltaTheta() const
Return engine time increment.
Definition: freePiston.C:81
virtual word unit() const
Return time unit.
Definition: freePiston.C:75
A class for handling words, derived from Foam::string.
Definition: word.H:68
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition: className.H:121
const word dictName("faMeshDefinition")
Namespace for OpenFOAM.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
Definition: exprTraits.C:59