Loading...
Searching...
No Matches
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{
35 defineTypeNameAndDebug(freePiston, 0);
37}
38
39
40// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
41
42Foam::freePiston::freePiston
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_, &db())
63 )
64{}
65
66
67// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
69Foam::scalar Foam::freePiston::theta() const
70{
71 return value();
72}
73
76{
77 return " s";
78}
79
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:92
const objectRegistry & db() const noexcept
Return the local objectRegistry.
Definition IOobject.C:450
scalar deltaTValue() const noexcept
Return time step value.
Definition TimeStateI.H:49
const fileName & rootPath() const noexcept
The root path.
Definition TimePathsI.H:66
const fileName & caseName() const noexcept
The case name.
Definition TimePathsI.H:78
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
const scalar & value() const noexcept
An abstract class for the time description of the piston motion.
Definition engineTime.H:53
engineTime(const word &name, const fileName &rootPath, const fileName &caseName, const fileName &systemName="system", const fileName &constantName="constant", const fileName &dictName="engineGeometry")
Construct from objectRegistry arguments.
Definition engineTime.C:36
const IOdictionary dict_
Definition engineTime.H:57
dimensionedScalar pistonPosition() const
Return current piston position.
Definition engineTime.C:87
static autoPtr< engineTime > New(const word &name, const fileName &rootPath, const fileName &caseName, const fileName &systemName="system", const fileName &constantName="constant", const fileName &dictName="engineGeometry")
A class for handling file names.
Definition fileName.H:75
In case of free pistons, the piston position is determined by a user-defined position according to ti...
Definition freePiston.H:72
virtual scalar theta() const
Return current engine time.
Definition freePiston.C:62
virtual scalar deltaTheta() const
Return engine time increment.
Definition freePiston.C:74
virtual word unit() const
Return time unit.
Definition freePiston.C:68
A class for handling words, derived from Foam::string.
Definition word.H:66
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition className.H:142
const word dictName("faMeshDefinition")
Namespace for OpenFOAM.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Definition exprTraits.C:127