/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2018 OpenCFD Ltd.
-------------------------------------------------------------------------------
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 .
Class
Foam::mappedFixedValueFvPatchField
Group
grpGenericBoundaryConditions grpCoupledBoundaryConditions
Description
This boundary condition maps the value at a set of cells or patch faces
back to *this.
The sample mode is set by the underlying mapping engine, provided by the
mappedPatchBase class.
Usage
\table
Property | Description | Required | Default
field | Field name to be mapped | no | this field name
setAverage | Use average value | no | false
average | Average value to use if \c setAverage = yes | partly |
interpolationScheme | type of interpolation scheme | partly |
\endtable
Example of the boundary condition specification:
\verbatim
{
type mapped;
field T;
setAverage no;
average 0;
interpolationScheme cell;
value uniform 0;
}
\endverbatim
When employing the \c nearestCell sample mode, the user must also specify
the interpolation scheme using the \c interpolationScheme entry.
In case of interpolation (where scheme != cell) the limitation is that
there is only one value per cell. For example, if you have a cell with two
boundary faces and both faces sample into the cell, both faces will get the
same value.
Note
It is not possible to sample internal faces since volume fields are not
defined on faces.
See also
Foam::mappedPatchBase
Foam::interpolation
Foam::fixedValueFvPatchField
SourceFiles
mappedFixedValueFvPatchField.C
\*---------------------------------------------------------------------------*/
#ifndef mappedFixedValueFvPatchField_H
#define mappedFixedValueFvPatchField_H
#include "fixedValueFvPatchFields.H"
//#include "interpolation.H"
#include "mappedPatchFieldBase.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class mappedFixedValueFvPatchField Declaration
\*---------------------------------------------------------------------------*/
template
class mappedFixedValueFvPatchField
:
public fixedValueFvPatchField,
public mappedPatchFieldBase
{
public:
//- Runtime type information
TypeName("mapped");
// Constructors
//- Construct from patch and internal field
mappedFixedValueFvPatchField
(
const fvPatch&,
const DimensionedField&
);
//- Construct from patch, internal field and dictionary
mappedFixedValueFvPatchField
(
const fvPatch&,
const DimensionedField&,
const dictionary&
);
//- Construct by mapping given mappedFixedValueFvPatchField
// onto a new patch
mappedFixedValueFvPatchField
(
const mappedFixedValueFvPatchField&,
const fvPatch&,
const DimensionedField&,
const fvPatchFieldMapper&
);
//- Construct as copy
mappedFixedValueFvPatchField
(
const mappedFixedValueFvPatchField&
);
//- Construct as copy setting internal field reference
mappedFixedValueFvPatchField
(
const mappedFixedValueFvPatchField&,
const DimensionedField&
);
//- Return a clone
virtual tmp> clone() const
{
return fvPatchField::Clone(*this);
}
//- Clone with an internal field reference
virtual tmp> clone
(
const DimensionedField& iF
) const
{
return fvPatchField::Clone(*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
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
#include "mappedFixedValueFvPatchField.C"
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //