/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2023 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::uniformMixedFvPatchField Group grpGenericBoundaryConditions Description This boundary condition provides 'mixed' type boundary condition that mix a \em uniform fixed value and a \em uniform patch-normal gradient condition. The term "uniform" is a legacy name since the prescribed values were previously spatially uniform across that patch. In the meantime, a PatchFunction1 is used, which can have both spatial and temporal dependencies. Usage \table Property | Description | Required | Default uniformValue | uniform value | partly | 0 uniformGradient | uniform gradient | partly | 0 uniformValueFraction | uniform valueFraction | partly | depends value | initial field value | optional | \endtable Example of the boundary condition specification: \verbatim { type uniformMixed; uniformValue constant 0.2; uniformGradient constant 0.2; uniformValueFraction { type sine; ... } } \endverbatim Note This boundary condition allows \em lazier definitions so that either or both: \c uniformValue and \c uniformGradient must be defined. If only of these entries is defined, the value fraction is automatically treated appropriately (ie, 0 with \c uniformGradient and 1 with uniformValue). If both \c uniformValue and \c uniformGradient are defined, the \c uniformValueFraction must also be defined. The \c value entry (optional) is used for the initial values. Otherwise the function(s) are used for the evaluation. In some cases (eg, coded or expression entries with references to other fields) this can be problematic and the \c value entry will be needed. See also Foam::Function1Types Foam::mixedFvPatchField SourceFiles uniformMixedFvPatchField.C \*---------------------------------------------------------------------------*/ #ifndef Foam_uniformMixedFvPatchField_H #define Foam_uniformMixedFvPatchField_H #include "mixedFvPatchField.H" #include "PatchFunction1.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ Class uniformMixedFvPatchField Declaration \*---------------------------------------------------------------------------*/ template class uniformMixedFvPatchField : public mixedFvPatchField { // Private Data //- Function providing the value autoPtr> refValueFunc_; //- Function providing the gradient autoPtr> refGradFunc_; //- Function providing the value-fraction autoPtr> valueFractionFunc_; public: //- Runtime type information TypeName("uniformMixed"); // Constructors //- Construct from patch and internal field uniformMixedFvPatchField ( const fvPatch&, const DimensionedField& ); //- Construct from patch and internal field and patch field uniformMixedFvPatchField ( const fvPatch&, const DimensionedField&, const Field& fld ); //- Construct from patch, internal field and dictionary uniformMixedFvPatchField ( const fvPatch&, const DimensionedField&, const dictionary& ); //- Construct by mapping onto a new patch uniformMixedFvPatchField ( const uniformMixedFvPatchField&, const fvPatch&, const DimensionedField&, const fvPatchFieldMapper& ); //- Construct as copy uniformMixedFvPatchField ( const uniformMixedFvPatchField& ); //- Construct as copy setting internal field reference uniformMixedFvPatchField ( const uniformMixedFvPatchField&, 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 //- Update the coefficients associated with the patch field virtual void updateCoeffs(); //- Write virtual void write(Ostream& os) const; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository #include "uniformMixedFvPatchField.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //