/usr/include/freefoam/finiteVolume/syringePressureFvPatchScalarField.H is in libfreefoam-dev 0.1.0+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 | /*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::syringePressureFvPatchScalarField
Description
Pressure boundary condition obtained from a 0-D model of the cylinder
of a syringe.
The syringe cylinder is defined by its initial volume, piston area and
velocity profile specified by regions of constant acceleration, speed
and deceleration. The gas in the cylinder is described by its initial
pressure and compressibility which is assumed constant, i.e. isothermal
expansion/compression.
Example of the BC specification:
@verbatim
outlet
{
type syringePressure;
Ap 1.388e-6; // syringe piston area
Sp 0.01; // syringe piston speed
VsI 1.388e-8; // Initial syringe volume
tas 0.001; // Start of piston acceleration
tae 0.002; // End of piston acceleration
tds 0.005; // Start of piston deceleration
tde 0.006; // end of piston deceleration
psI 1e5; // Initial syringe pressure
psi 1e-5; // Gas compressibility
ams 0; // Added (or removed) gas mass
// Initially 0 but used for restarting.
}
@endverbatim
SourceFiles
syringePressureFvPatchScalarField.C
\*---------------------------------------------------------------------------*/
#ifndef syringePressureFvPatchScalarField_H
#define syringePressureFvPatchScalarField_H
#include <finiteVolume/fixedValueFvPatchFields.H>
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class syringePressureFvPatch Declaration
\*---------------------------------------------------------------------------*/
class syringePressureFvPatchScalarField
:
public fixedValueFvPatchScalarField
{
// Private data
//- syringe piston area
scalar Ap_;
//- syringe piston speed
scalar Sp_;
//- Initial syringe volume
scalar VsI_;
//- Start of piston acceleration
scalar tas_;
//- End of piston acceleration
scalar tae_;
//- Start of piston deceleration
scalar tds_;
//- end of piston deceleration
scalar tde_;
//- Initial syringe pressure
scalar psI_;
//- Gas compressibility
scalar psi_;
//- Added gas mass
scalar ams_;
//- Added gas mass at previous time step
scalar ams0_;
//- Current time index used to store ms0_
label curTimeIndex_;
//- return the volume of the syringe at time t
scalar Vs(const scalar t) const;
public:
//- Runtime type information
TypeName("syringePressure");
// Constructors
//- Construct from patch and internal field
syringePressureFvPatchScalarField
(
const fvPatch&,
const DimensionedField<scalar, volMesh>&
);
//- Construct from patch, internal field and dictionary
syringePressureFvPatchScalarField
(
const fvPatch&,
const DimensionedField<scalar, volMesh>&,
const dictionary&
);
//- Construct by mapping given syringePressureFvPatchScalarField
// onto a new patch
syringePressureFvPatchScalarField
(
const syringePressureFvPatchScalarField&,
const fvPatch&,
const DimensionedField<scalar, volMesh>&,
const fvPatchFieldMapper&
);
//- Construct and return a clone
virtual tmp<fvPatchScalarField> clone() const
{
return tmp<fvPatchScalarField>
(
new syringePressureFvPatchScalarField(*this)
);
}
//- Construct as copy
syringePressureFvPatchScalarField
(
const syringePressureFvPatchScalarField&
);
//- Construct as copy setting internal field reference
syringePressureFvPatchScalarField
(
const syringePressureFvPatchScalarField&,
const DimensionedField<scalar, volMesh>&
);
//- Construct and return a clone setting internal field reference
virtual tmp<fvPatchScalarField> clone
(
const DimensionedField<scalar, volMesh>& iF
) const
{
return tmp<fvPatchScalarField>
(
new syringePressureFvPatchScalarField(*this, iF)
);
}
// Member functions
// Evaluation functions
//- Update the coefficients associated with the patch field
virtual void updateCoeffs();
//- Write
virtual void write(Ostream&) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************ vim: set sw=4 sts=4 et: ************************ //
|