CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   Temperature-dependent emissivity for DOM boundary condition (https://www.cfd-online.com/Forums/openfoam/68673-temperature-dependent-emissivity-dom-boundary-condition.html)

navier September 28, 2009 16:03

Temperature-dependent emissivity for DOM boundary condition
 
Hi, I am learning how to use buoyantSimpleRadiationFoam and looking at the tutorial
tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoomFvDOM. In this tutorial a constant emissivity is used for DOM:
Code:

dimensions      [1 0 -3 0 0 0 0];

internalField  uniform 0;

boundaryField
{
    ".*"
    {
        type            greyDiffusiveRadiation;
        T              T;
        emissivity      0.5;
        value          uniform 0;
    }
}

I wonder how to modify it for temperature-dependent emissivity (i.e., polynomial functions of temperature). Thanks in advance!

jano September 29, 2009 19:04

Hi,

1) a quick and 'not recommended' option would to modify the boundary condition and recompile it

in the following file

src/thermophysicalModels/radiation/lnInclude/greyDiffusiveRadiationMixedFvPatchScalarField.C

you will find

refValue() =
emissivity_*4.0*radiation::sigmaSB.value()*pow4(Tp )
/Foam::mathematicalConstant::pi;

you can replace it by (e.g.)

emissivity_*(Tp/1000)*4.0*radiation::sigmaSB.value()*pow4(Tp)
/Foam::mathematicalConstant::pi;

where Tp is the wall temperature and 1000 a linear factor

you will need to recompile the boundary condition by executing "wmake libso" in the directory 'src/thermophysicalModels/radiation'

2) recommended method: read "Implement boundary condition" at http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2007/
It is explained how to copy the boundary condition (including .H file) in your own 'run' directory, modify it and recompile it.

I hope this helps...

Jean

navier September 30, 2009 18:36

Thanks for your help, Jean. I will follow your second suggestion.

navier September 30, 2009 18:48

Now I have another question about how to use temperature-dependent absorption coefficient. I am studying the case tutorials/heatTransfer/buoyantSimpleRadiationFoam/hotRadiationRoom. To use greyMeanAbsorptionEmision model, the radiationProperties dictionary was modified as
Code:

radiation      on;

radiationModel  P1;

noRadiation
{
}

P1Coeffs
{
}

// Number of flow iterations per radiation iteration
solverFreq 1;

absorptionEmissionModel greyMeanAbsorptionEmission;

greyMeanAbsorptionEmissionCoeffs
{
    lookUpTableFileName "speciesTable";
    EhrrCoeff          0.0;
}

scatterModel    constantScatter;

constantScatterCoeffs
{
    sigma          sigma [ 0 -1 0 0 0 0 0 ] 0;
    C              C [ 0 0 0 0 0 0 0 ] 0;
}

The speciesTable dictionary was created as well:
Code:

air
{
  Tcommon    300.;
  invTemp    true;
  Tlow        300.;
  Thigh        2500.;

  loTcoeffs
  (
    0
    0
    0
    0
    0
    0
  );
  hiTcoeffs
  (
    18.741
    -121.31e3
    273.5e6
    -194.05e9
    56.31e12
    -5.8169e15
  );

}

When I tried to run it, I got the following message:
Code:

keyword fields is undefined in dictionary "/home/navier/foam/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/speciesTable"

file: /home/navier/foam/buoyantSimpleRadiationFoam/hotRadiationRoom/constant/speciesTable from line 20 to line 42.

    From function dictionary::lookupEntry(const word&, bool, bool) const
    in file db/dictionary/dictionary.C at line 388.

FOAM exiting

What's wrong/missing in my dictionaries? I know probably it's a simple problem but I am new in OF.


All times are GMT -4. The time now is 06:17.