Commit deb7abdd authored by mattijs's avatar mattijs
Browse files

Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev

parents bb4a1820 5b42b30b
......@@ -105,6 +105,7 @@ $(derivedFvPatchFields)/inletOutlet/inletOutletFvPatchFields.C
$(derivedFvPatchFields)/inletOutletTotalTemperature/inletOutletTotalTemperatureFvPatchScalarField.C
$(derivedFvPatchFields)/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C
$(derivedFvPatchFields)/movingWallVelocity/movingWallVelocityFvPatchVectorField.C
$(derivedFvPatchFields)/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.C
$(derivedFvPatchFields)/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.C
$(derivedFvPatchFields)/outletInlet/outletInletFvPatchFields.C
$(derivedFvPatchFields)/partialSlip/partialSlipFvPatchFields.C
......
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2007 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 2 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, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\*---------------------------------------------------------------------------*/
#include "rotatingWallVelocityFvPatchVectorField.H"
#include "addToRunTimeSelectionTable.H"
#include "volFields.H"
#include "surfaceFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
rotatingWallVelocityFvPatchVectorField::rotatingWallVelocityFvPatchVectorField
(
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF
)
:
fixedValueFvPatchField<vector>(p, iF),
origin_(vector::zero),
axis_(vector::zero),
omega_(0)
{}
rotatingWallVelocityFvPatchVectorField::rotatingWallVelocityFvPatchVectorField
(
const rotatingWallVelocityFvPatchVectorField& ptf,
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF,
const fvPatchFieldMapper& mapper
)
:
fixedValueFvPatchField<vector>(ptf, p, iF, mapper),
origin_(ptf.origin_),
axis_(ptf.axis_),
omega_(ptf.omega_)
{}
rotatingWallVelocityFvPatchVectorField::rotatingWallVelocityFvPatchVectorField
(
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF,
const dictionary& dict
)
:
fixedValueFvPatchField<vector>(p, iF),
origin_(dict.lookup("origin")),
axis_(dict.lookup("axis")),
omega_(readScalar(dict.lookup("omega")))
{
// Evaluate the wall velocity
updateCoeffs();
}
rotatingWallVelocityFvPatchVectorField::rotatingWallVelocityFvPatchVectorField
(
const rotatingWallVelocityFvPatchVectorField& pivpvf
)
:
fixedValueFvPatchField<vector>(pivpvf),
origin_(pivpvf.origin_),
axis_(pivpvf.axis_),
omega_(pivpvf.omega_)
{}
rotatingWallVelocityFvPatchVectorField::rotatingWallVelocityFvPatchVectorField
(
const rotatingWallVelocityFvPatchVectorField& pivpvf,
const DimensionedField<vector, volMesh>& iF
)
:
fixedValueFvPatchField<vector>(pivpvf, iF),
origin_(pivpvf.origin_),
axis_(pivpvf.axis_),
omega_(pivpvf.omega_)
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void rotatingWallVelocityFvPatchVectorField::updateCoeffs()
{
if (updated())
{
return;
}
// Calculate the rotating wall velocity from the specification of the motion
vectorField Up = (-omega_)*((patch().Cf() - origin_) ^ (axis_/mag(axis_)));
// Remove the component of Up normal to the wall
// just in case it is not exactly circular
vectorField n = patch().nf();
vectorField::operator=(Up - n*(n & Up));
fixedValueFvPatchVectorField::updateCoeffs();
}
void rotatingWallVelocityFvPatchVectorField::write(Ostream& os) const
{
fvPatchVectorField::write(os);
os.writeKeyword("origin") << origin_ << token::END_STATEMENT << nl;
os.writeKeyword("axis") << axis_ << token::END_STATEMENT << nl;
os.writeKeyword("omega") << omega_ << token::END_STATEMENT << nl;
writeEntry("value", os);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makePatchTypeField
(
fvPatchVectorField,
rotatingWallVelocityFvPatchVectorField
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
Foam::rotatingWallVelocityFvPatchVectorField
Description
Foam::rotatingWallVelocityFvPatchVectorField
SourceFiles
rotatingWallVelocityFvPatchVectorField.C
\*---------------------------------------------------------------------------*/
#ifndef rotatingWallVelocityFvPatchVectorField_H
#define rotatingWallVelocityFvPatchVectorField_H
#include "fixedValueFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class rotatingWallVelocityFvPatch Declaration
\*---------------------------------------------------------------------------*/
class rotatingWallVelocityFvPatchVectorField
:
public fixedValueFvPatchVectorField
{
// Private data
//- Origin of the rotation
vector origin_;
//- Axis of the rotation
vector axis_;
//- Rotational speed
scalar omega_;
public:
//- Runtime type information
TypeName("rotatingWallVelocity");
// Constructors
//- Construct from patch and internal field
rotatingWallVelocityFvPatchVectorField
(
const fvPatch&,
const DimensionedField<vector, volMesh>&
);
//- Construct from patch, internal field and dictionary
rotatingWallVelocityFvPatchVectorField
(
const fvPatch&,
const DimensionedField<vector, volMesh>&,
const dictionary&
);
//- Construct by mapping given rotatingWallVelocityFvPatchVectorField
// onto a new patch
rotatingWallVelocityFvPatchVectorField
(
const rotatingWallVelocityFvPatchVectorField&,
const fvPatch&,
const DimensionedField<vector, volMesh>&,
const fvPatchFieldMapper&
);
//- Construct as copy
rotatingWallVelocityFvPatchVectorField
(
const rotatingWallVelocityFvPatchVectorField&
);
//- Construct and return a clone
virtual tmp<fvPatchVectorField> clone() const
{
return tmp<fvPatchVectorField>
(
new rotatingWallVelocityFvPatchVectorField(*this)
);
}
//- Construct as copy setting internal field reference
rotatingWallVelocityFvPatchVectorField
(
const rotatingWallVelocityFvPatchVectorField&,
const DimensionedField<vector, volMesh>&
);
//- Construct and return a clone setting internal field reference
virtual tmp<fvPatchVectorField> clone
(
const DimensionedField<vector, volMesh>& iF
) const
{
return tmp<fvPatchVectorField>
(
new rotatingWallVelocityFvPatchVectorField(*this, iF)
);
}
// Member functions
// Access functions
//- Return the origin of the rotation
const vector& origin() const
{
return origin_;
}
//- Return the axis of the rotation
const vector& axis() const
{
return axis_;
}
//- Return the rotational speed
const scalar& omega() const
{
return omega_;
}
//- Return non-const access to the origin of the rotation
vector& origin()
{
return origin_;
}
//- Return non-const access to the axis of the rotation
vector& axis()
{
return axis_;
}
//- Return non-const access to the rotational speed
scalar& omega()
{
return omega_;
}
//- Update the coefficients associated with the patch field
virtual void updateCoeffs();
//- Write
virtual void write(Ostream&) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //
......@@ -66,7 +66,7 @@ class turbulentHeatFluxTemperatureFvPatchScalarField
public:
//- Runtime type information
TypeName("turbulentHeatFluxTemperature");
TypeName("compressible::turbulentHeatFluxTemperature");
// Constructors
......
......@@ -72,7 +72,7 @@ class turbulentMixingLengthDissipationRateInletFvPatchScalarField
public:
//- Runtime type information
TypeName("turbulentMixingLengthDissipationRateInlet");
TypeName("compressible::turbulentMixingLengthDissipationRateInlet");
// Constructors
......
......@@ -76,7 +76,7 @@ class turbulentMixingLengthFrequencyInletFvPatchScalarField
public:
//- Runtime type information
TypeName("turbulentMixingLengthFrequencyInlet");
TypeName("compressible::turbulentMixingLengthFrequencyInlet");
// Constructors
......
......@@ -66,7 +66,7 @@ class alphatWallFunctionFvPatchScalarField
public:
//- Runtime type information
TypeName("alphatWallFunction");
TypeName("compressible::alphatWallFunction");
// Constructors
......
......@@ -87,7 +87,7 @@ class epsilonWallFunctionFvPatchScalarField
public:
//- Runtime type information
TypeName("epsilonWallFunction");
TypeName("compressible::epsilonWallFunction");
// Constructors
......
......@@ -67,7 +67,7 @@ class kQRWallFunctionFvPatchField
public:
//- Runtime type information
TypeName("kQRWallFunction");
TypeName("compressible::kQRWallFunction");
// Constructors
......
......@@ -85,7 +85,7 @@ class omegaWallFunctionFvPatchScalarField
public:
//- Runtime type information
TypeName("omegaWallFunction");
TypeName("compressible::omegaWallFunction");
// Constructors
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment