EMISSIVITY_MODEL
Specifies an emissivity model for the radiation equation.
Type
AcuSolve Command
Syntax
EMISSIVITY_MODEL("name") {parameters...}
Qualifier
User-given name.
Parameters
- type (enumerated) [=none]
- Type of the emissivity.
- constant or const
- Constant emissivity. Requires emissivity.
- piecewise_linear or linear
- Piecewise linear curve fit. Requires curve_fit_values and curve_fit_variable.
- cubic_spline or spline
- Cubic spline curve fit. Requires curve_fit_values and curve_fit_variable.
- user_function or user
- User-defined function. Requires user_function, user_values and user_strings.
- emissivity or emis (real) >0 <=1 [=1]
- Constant value of the emissivity. Used with constant type.
- diffused_fraction (real) [= 1.0]
- To enable specular reflection a RADIATION_SURFACE must be defined and the diffused fraction, , and emissivity, , must both be less than one.
- curve_fit_values or curve_values (array) [={0,0}]
- A two-column array of independent-variable/emissivity data values. Used with piecewise_linear and cubic_spline types.
- curve_fit_variable or curve_var (enumerated) [=temperature]
- Independent variable of the curve fit. Used with piecewise_linear and
cubic_spline types.
- temperature or temp
- Temperature.
- user_function or user (string) [no default]
- Name of the user-defined function. Used with user_function type.
- user_values (array) [={}]
- Array of values to be passed to the user-defined function. Used with user_function type.
- user_strings (list) [={}]
- Array of strings to be passed to the user-defined function. Used with user_function type.
- multiplier_function (string) [=none]
- User-given name of the multiplier function for scaling the viscosity. If none, no scaling is performed.
Description
This command specifies an ideal grey-surface emissivity model for the radiation equation. This model is only applicable to radiation surfaces, and is not used for the radiation_heat_flux variable in the ELEMENT_BOUNDARY_CONDITION command.
EMISSIVITY_MODEL( "my emissivity model" ) {
type = constant
emissivity = 0.5
}
RADIATION_SURFACE( "hot wall" ) {
emmissivity_mdoel = "my emmissivity model"
...
}
The emissivity is the factor in the Stefan-Boltzmann law for the total emissive power of an ideal grey surface:
where is the Stefan-Boltzmann constant, given by the Stefan_boltzmann_constant parameter of the RADIATION command; T is the temperature; and Toff is the offset to convert to an absolute temperature, given by the absolute_temperature_offset parameter of the EQUATION command.
A constant emissivity model applies a spatially constant emissivity, as in the above example.
EMISSIVITY_MODEL( "curve fit emissivity model" ) {
type = piecewise_linear
curve_fit_values = { 273, 0.2 ; 323, 0.2 ; 373, 0.3 ; 423, 0.4 ; }
curve_fit_variable = temperature
}
defines emissivity as a function of temperature. In general, the problem must contain the variable defined by curve_fit_variable; this is not an issue here since radiation problems always contain temperature. The curve_fit_values parameter is a two-column array corresponding to the independent variable and the emissivity values. The independent variable values must be in ascending order. The limit point values of the curve fit are used when curve_fit_variable falls outside of the curve fit limits.
273 0.2
323 0.2
373 0.3
423 0.3
EMISSIVITY_MODEL( "curve fit emissivity model" ) {
type = piecewise_linear
curve_fit_values = Read( "emissivity.fit" )
curve_fit_variable = temperature
}
An emissivity of type user_function may be used to model more complex behaviors; see the AcuSolve User- Defined Functions Manual for a detailed description of user-defined functions.
EMISSIVITY_MODEL( "UDF emissivity model" ) {
type = user_function
user_function = "usrEmissivityExample"
user_values = { 300, # lower temp. limit of band
400, # upper temp. limit of band
0.3, # default emissivity
0.5 } # emissivity in temperature band
}
#include "acusim.h"
#include "udf.h"
UDF_PROTOTYPE( usrEmissivityExample ) ; /* function prototype */
Void usrEmissivityExample (
UdfHd udfHd, /* Opaque handle for accessing data */
Real* outVec, /* Output vector */
Integer nItems, /* Number of elements */
Integer vecDim /* = 1 */
) {
Integer elem ; /* an element counter */
Real temp0 ; /* lower temp. limit of band */
Real temp1 ; /* upper temp. limit of band */
Real eDef ; /* default emissivity */
Real eBand ; /* emissivity in temperature band */
Real* temp ; /* temperature */
Real* usrVals ; /* user values */
udfCheckNumUsrVals( udfHd, 4 ) ; /* check for error */
usrVals = udfGetUsrVals( udfHd ) ; /* get the user vals */
temp0 = usrVals[0] ; /* lower temp */
temp1 = usrVals[1] ; /* upper temp */
eDef = usrVals[2] ; /* default emissivity */
eBand = usrVals[3] ; /* band emissivity */
temp = udfGetRsfData( udfHd, UDF_RSF_TEMPERATURE ) ; /* get the temp. */
for ( elem = 0 ; elem < nItems ; elem++ ) {
if ( temp[elem] >= temp0 && temp[elem] <= temp1 ) {
outVec[elem] = eBand ;
} else {
outVec[elem] = eDef ;
}
}
} /* end of usrEmissivityExample() */
The dimension of the returned emissivity vector, outVec, is the number of elements.
EMISSIVITY_MODEL( "ramped emissivity model" ) {
type = constant
emissivity = 0.4
multiplier_function = "ramped"
}
MULTIPLIER_FUNCTION( "ramped" ) {
type = piecewise_linear
curve_fit_values = { 1, 0.1 ; 10, 1 }
curve_fit_variable = time_step
}