Skip to content
Snippets Groups Projects
fixedValueFvPatchField.C 3.97 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*---------------------------------------------------------------------------*\
      =========                 |
      \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
       \\    /   O peration     |
    
        \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
    
         \\/     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/>.
    
    
    \*---------------------------------------------------------------------------*/
    
    #include "fixedValueFvPatchField.H"
    
    // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
    
    template<class Type>
    
    Foam::fixedValueFvPatchField<Type>::fixedValueFvPatchField
    
    (
        const fvPatch& p,
        const DimensionedField<Type, volMesh>& iF
    )
    :
        fvPatchField<Type>(p, iF)
    {}
    
    
    
    template<class Type>
    Foam::fixedValueFvPatchField<Type>::fixedValueFvPatchField
    (
        const fvPatch& p,
        const DimensionedField<Type, volMesh>& iF,
        const Type& value
    )
    :
        fvPatchField<Type>(p, iF, value)
    {}
    
    
    
    template<class Type>
    
    Foam::fixedValueFvPatchField<Type>::fixedValueFvPatchField
    
    (
        const fvPatch& p,
        const DimensionedField<Type, volMesh>& iF,
    
        const dictionary& dict,
        const bool valueRequired
    
        fvPatchField<Type>(p, iF, dict, valueRequired)
    
    Foam::fixedValueFvPatchField<Type>::fixedValueFvPatchField
    
    (
        const fixedValueFvPatchField<Type>& ptf,
        const fvPatch& p,
        const DimensionedField<Type, volMesh>& iF,
        const fvPatchFieldMapper& mapper
    )
    :
        fvPatchField<Type>(ptf, p, iF, mapper)
    
        if (notNull(iF) && mapper.hasUnmapped())
    
            WarningInFunction
                << "On field " << iF.name() << " patch " << p.name()
    
                << " patchField " << this->type()
                << " : mapper does not map all values." << nl
                << "    To avoid this warning fully specify the mapping in derived"
                << " patch fields." << endl;
        }
    }
    
    Foam::fixedValueFvPatchField<Type>::fixedValueFvPatchField
    
    (
        const fixedValueFvPatchField<Type>& ptf
    )
    :
        fvPatchField<Type>(ptf)
    {}
    
    
    template<class Type>
    
    Foam::fixedValueFvPatchField<Type>::fixedValueFvPatchField
    
    (
        const fixedValueFvPatchField<Type>& ptf,
        const DimensionedField<Type, volMesh>& iF
    )
    :
        fvPatchField<Type>(ptf, iF)
    {}
    
    
    // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
    
    template<class Type>
    
    Foam::fixedValueFvPatchField<Type>::valueInternalCoeffs
    
    (
        const tmp<scalarField>&
    ) const
    {
    
    Foam::fixedValueFvPatchField<Type>::valueBoundaryCoeffs
    
    (
        const tmp<scalarField>&
    ) const
    {
        return *this;
    }
    
    
    template<class Type>
    
    Foam::fixedValueFvPatchField<Type>::gradientInternalCoeffs() const
    
    {
        return -pTraits<Type>::one*this->patch().deltaCoeffs();
    }
    
    
    template<class Type>
    
    Foam::fixedValueFvPatchField<Type>::gradientBoundaryCoeffs() const
    
    {
        return this->patch().deltaCoeffs()*(*this);
    }
    
    
    template<class Type>
    
    void Foam::fixedValueFvPatchField<Type>::write(Ostream& os) const
    
    {
        fvPatchField<Type>::write(os);
        this->writeEntry("value", os);
    }
    
    
    // ************************************************************************* //