View Issue Details

IDProjectCategoryView StatusLast Update
0001875OpenFOAMBugpublic2015-10-25 17:11
Reporterwyldckat Assigned Tohenry  
PrioritylowSeveritytextReproducibilityN/A
Status resolvedResolutionfixed 
Product Versiondev 
Summary0001875: turbulentHeatFluxTemperatureFvPatchScalarField.H doesn't render very well in Doxygen
DescriptionThe example description in "turbulentHeatFluxTemperatureFvPatchScalarField.H" gets squished into a single line by Doxygen: http://foam.sourceforge.net/docs/cpp/a02708.html#details - and in http://openfoam.github.io/Documentation-dev/html/a02627.html#details

Attached is a replacement file for "src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H", which is a bit more detailed and which should be better rendered by Doxygen, since it follows the same structure as other header files.
Steps To ReproduceCopy-paste from http://foam.sourceforge.net/docs/cpp/a02708.html#details :


Fixed heat boundary condition to specify temperature gradient. Input heat source either specified in terms of an absolute power [W], or as a flux [W/m2].

Example usage:

hotWall { type compressible::turbulentHeatFluxTemperature; heatSource flux; // power [W]; flux [W/m2] q uniform 10; // heat power or flux kappa fluidThermo; // calculate kappa=alphaEff*thermo.Cp Qr none; // name of the radiative flux value uniform 300; // initial temperature value }

TagsNo tags attached.

Activities

wyldckat

2015-10-21 15:08

updater  

turbulentHeatFluxTemperatureFvPatchScalarField.H (6,670 bytes)   
/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
    \\  /    A nd           | Copyright (C) 2011-2015 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/>.

Class
    Foam::turbulentHeatFluxTemperatureFvPatchScalarField

Description
    Fixed heat boundary condition to specify temperature gradient. Input
    heat source either specified in terms of an absolute power [W], or as a
    flux [W/m^2].

    \heading Patch usage

    \table
        Property     | Description             | Required    | Default value
        heatSource   | 'power' [W] or 'flux' [W/m^2] | yes |
        q            | heat power or flux field      | yes |
        kappa        | inherited from Foam::temperatureCoupledBase | yes |
        Qr           | name of the radiative flux field | yes |
        value        | initial temperature value     | no | calculated
        gradient     | initial gradient value        | no | 0.0
    \endtable

    Example usage:
    \verbatim
    hotWall
    {
        type            compressible::turbulentHeatFluxTemperature;
        heatSource      flux;
        q               uniform 10;
        kappa           fluidThermo;
        Qr              none;
        gradient        uniform 0;
        value           uniform 300;
    }
    \endverbatim


SeeAlso
    Foam::temperatureCoupledBase

SourceFiles
    turbulentHeatFluxTemperatureFvPatchScalarField.C

\*---------------------------------------------------------------------------*/

#ifndef turbulentHeatFluxTemperatureFvPatchScalarFields_H
#define turbulentHeatFluxTemperatureFvPatchScalarFields_H

#include "fixedGradientFvPatchFields.H"
#include "temperatureCoupledBase.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{
namespace compressible
{

/*---------------------------------------------------------------------------*\
      Class turbulentHeatFluxTemperatureFvPatchScalarField Declaration
\*---------------------------------------------------------------------------*/

class turbulentHeatFluxTemperatureFvPatchScalarField
:
    public fixedGradientFvPatchScalarField,
    public temperatureCoupledBase
{
public:

    // Data types

        //- Enumeration listing the possible hest source input modes
        enum heatSourceType
        {
            hsPower,
            hsFlux
        };


private:

    // Private data

        //- Heat source type names
        static const NamedEnum<heatSourceType, 2> heatSourceTypeNames_;

        //- Heat source type
        heatSourceType heatSource_;

        //- Heat power [W] or flux [W/m2]
        scalarField q_;

        //- Name of radiative in flux field
        word QrName_;


public:

    //- Runtime type information
    TypeName("compressible::turbulentHeatFluxTemperature");


    // Constructors

        //- Construct from patch and internal field
        turbulentHeatFluxTemperatureFvPatchScalarField
        (
            const fvPatch&,
            const DimensionedField<scalar, volMesh>&
        );

        //- Construct from patch, internal field and dictionary
        turbulentHeatFluxTemperatureFvPatchScalarField
        (
            const fvPatch&,
            const DimensionedField<scalar, volMesh>&,
            const dictionary&
        );

        //- Construct by mapping given
        //  turbulentHeatFluxTemperatureFvPatchScalarField onto
        //  a new patch
        turbulentHeatFluxTemperatureFvPatchScalarField
        (
            const turbulentHeatFluxTemperatureFvPatchScalarField&,
            const fvPatch&,
            const DimensionedField<scalar, volMesh>&,
            const fvPatchFieldMapper&
        );

        //- Construct as copy
        turbulentHeatFluxTemperatureFvPatchScalarField
        (
            const turbulentHeatFluxTemperatureFvPatchScalarField&
        );

        //- Construct and return a clone
        virtual tmp<fvPatchScalarField> clone() const
        {
            return tmp<fvPatchScalarField>
            (
                new turbulentHeatFluxTemperatureFvPatchScalarField(*this)
            );
        }

        //- Construct as copy setting internal field reference
        turbulentHeatFluxTemperatureFvPatchScalarField
        (
            const turbulentHeatFluxTemperatureFvPatchScalarField&,
            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 turbulentHeatFluxTemperatureFvPatchScalarField
                (
                    *this,
                    iF
                )
            );
        }


    // Member functions

        // Mapping functions

            //- Map (and resize as needed) from self given a mapping object
            virtual void autoMap(const fvPatchFieldMapper&);

            //- Reverse map the given fvPatchField onto this fvPatchField
            virtual void rmap
            (
                const fvPatchScalarField&,
                const labelList&
            );


        // Evaluation functions

            //- Update the coefficients associated with the patch field
            virtual void updateCoeffs();


        // I-O

            //- Write
            virtual void write(Ostream&) const;
};


// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace compressible
} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#endif

// ************************************************************************* //

wyldckat

2015-10-21 15:10

updater   ~0005454

Last edited: 2015-10-21 15:11

Haven't assigned this report yet, because "temperatureCoupled" could also use some updating, by which I mean that there are a few more missing parameters to be described that affect both classes.

henry

2015-10-25 15:33

manager   ~0005486

Thanks for the update Bruno,
resolved by commit f52fb042b8471121bd6a6bf17e97487b70ae149c

wyldckat

2015-10-25 17:02

updater   ~0005489

Last edited: 2015-10-25 17:05

Sorry, but you beat me to it.
I'm reopening and attaching another revision for "turbulentHeatFluxTemperatureFvPatchScalarField.H" (attached file "turbulentHeatFluxTemperatureFvPatchScalarField.H_v2"), as well as an update for "temperatureCoupledBase.H".

Target folders:
  - src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature
  - src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/temperatureCoupledBase

wyldckat

2015-10-25 17:03

updater  

temperatureCoupledBase.H (5,090 bytes)   
/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
    \\  /    A nd           | Copyright (C) 2011-2015 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/>.

Class
    Foam::temperatureCoupledBase

Description
    Common functions for use in temperature coupled boundaries.
    
    For now only provides the following methods:

    - kappa() : heat conduction at patch. Gets supplied how to lookup/calculate
      'kappa':
        - 'lookup' : lookup volScalarField (or volSymmTensorField) with name
           defined in 'kappaName'
        - 'fluidThermo' : use fluidThermo and default
          compressible::turbulenceModel to calculate kappa
        - 'solidThermo' : use solidThermo kappa()
        - 'directionalSolidThermo': uses look up for volSymmTensorField for
          transformed kappa vector. Field name definable in 'alphaAniName',
          named 'Anialpha' in solid solver by default

    \heading Keywords provided by this class

    \table
        Property     | Description             | Required    | Default value
        kappa        | heat conduction type at patch, as listed above | yes |
        kappaName    | Name of thermal conductivity field | yes |
        alphaAniName | name of the non-isotropic alpha | no | 'Anialpha'
    \endtable

    Usage examples:
    \verbatim
    nonIsotropicWall
    {
        ...
        kappa           directionalSolidThermo;
        kappaName       none;
        alphaAniName    Anialpha;
        ...
    }
    \endverbatim
       
SourceFiles
    temperatureCoupledBase.C

\*---------------------------------------------------------------------------*/

#ifndef temperatureCoupledBase_H
#define temperatureCoupledBase_H

#include "scalarField.H"
#include "NamedEnum.H"
#include "fvPatch.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{

/*---------------------------------------------------------------------------*\
                   Class temperatureCoupledBase Declaration
\*---------------------------------------------------------------------------*/

class temperatureCoupledBase
{
public:

    // Public enumerations

        //- Type of supplied Kappa
        enum KMethodType
        {
            mtFluidThermo,
            mtSolidThermo,
            mtDirectionalSolidThermo,
            mtLookup
        };


protected:

    // Protected data

        static const NamedEnum<KMethodType, 4> KMethodTypeNames_;

        //- Underlying patch
        const fvPatch& patch_;

        //- How to get K
        const KMethodType method_;

        //- Name of thermal conductivity field (if looked up from database)
        const word kappaName_;

        //- Name of the non-Isotropic alpha (default: Anialpha)
        const word alphaAniName_;


public:

    // Constructors

        //- Construct from patch and K name
        temperatureCoupledBase
        (
            const fvPatch& patch,
            const word& calculationMethod,
            const word& kappaName,
            const word& alphaAniName
        );

        //- Construct from patch and dictionary
        temperatureCoupledBase
        (
            const fvPatch& patch,
            const dictionary& dict
        );

         //- Construct from patch and temperatureCoupledBase
        temperatureCoupledBase
        (
            const fvPatch& patch,
            const temperatureCoupledBase& base
        );


    // Member functions

        //- Method to obtain K
        word KMethod() const
        {
            return KMethodTypeNames_[method_];
        }

        //- Name of thermal conductivity field
        const word& kappaName() const
        {
            return kappaName_;
        }

        //- Given patch temperature calculate corresponding K field
        tmp<scalarField> kappa(const scalarField& Tp) const;

        //- Write
        void write(Ostream&) const;
};


// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#endif

// ************************************************************************* //
temperatureCoupledBase.H (5,090 bytes)   

wyldckat

2015-10-25 17:04

updater  

henry

2015-10-25 17:10

manager   ~0005490

Thanks Bruno.
Resolved by commit 63c620dc68a778dcae7ce7de37a90d817d354f9b

Issue History

Date Modified Username Field Change
2015-10-21 15:08 wyldckat New Issue
2015-10-21 15:08 wyldckat File Added: turbulentHeatFluxTemperatureFvPatchScalarField.H
2015-10-21 15:10 wyldckat Note Added: 0005454
2015-10-21 15:11 wyldckat Note Edited: 0005454
2015-10-25 15:33 henry Note Added: 0005486
2015-10-25 15:33 henry Status new => resolved
2015-10-25 15:33 henry Resolution open => fixed
2015-10-25 15:33 henry Assigned To => henry
2015-10-25 17:02 wyldckat Note Added: 0005489
2015-10-25 17:02 wyldckat Status resolved => feedback
2015-10-25 17:02 wyldckat Resolution fixed => reopened
2015-10-25 17:03 wyldckat File Added: temperatureCoupledBase.H
2015-10-25 17:04 wyldckat File Added: turbulentHeatFluxTemperatureFvPatchScalarField.H_v2
2015-10-25 17:05 wyldckat Note Edited: 0005489
2015-10-25 17:10 henry Note Added: 0005490
2015-10-25 17:10 henry Status feedback => resolved
2015-10-25 17:10 henry Resolution reopened => fixed