surfaceToSurfaceSettings
Description
A surfaceToSurfaceSettings object contains
information about the parameters for thermal radiation analysis between surfaces without
conductive media. The settings include all defined enclosures, names of enclosures currently
participating in radiation analysis, and computed view factors.
Creation
The setupRadiation
function creates a surfaceToSurfaceSettings object stored in the
ThermalRadiation property of an femodel object.
When calling setupRadiation, use fem as both the
input and output argument to assign the resulting surfaceToSurfaceSettings object to the ThermalRadiation
property of the specified model.
Properties
This property is read-only.
Computed view factors, stored as a numeric matrix. Computing view factors involves determining which mesh facet on the boundary sees which other facets, including the effect of shadowing. The toolbox uses ray tracing to determine shadowing, while it uses the double area integral method or the Monte Carlo method to compute the view factors themselves.
Data Types: double
Since R2024a
This property is read-only.
Method for computing view factors, stored as "areaintegral" or
montecarlo".
Computing view factors involves determining which mesh facet on the boundary sees which other facets, including the effect of shadowing. The toolbox uses ray tracing to determine shadowing. By default, it uses the double area integral method to compute view factors. Using the Monte Carlo method instead improves results for enclosures with a shared edge, such as two orthogonal faces of a box, but it can take longer.
Data Types: string
Enclosures for surface-to-surface radiation analysis, stored as a dictionary with
string keys and enclosureDefinition values. Each
enclosure is a group of surfaces between which heat transfer occurs due to radiation
without conductive media.
This property is read-only.
Names of enclosures participating in radiation analysis, stored as a string or a vector of strings.
Data Types: string
Examples
Specify radiation parameters for heat transfer between two parallel plates.
Create the geometry representing two parallel plates of the same dimensions. The distance between the plates is 0.4 m.
dist = 0.4; W = 0.05; L = 0.5; H = 0.5; R1 = [3 4 0 W W 0 0 0 L L]; R2 = [3 4 W+dist 2*W+dist 2*W+dist W+dist 0 0 L L]; geom2D = fegeometry(decsg([R1(:) R2(:)], ... 'R1+R2',[char('R1')' char('R2')'])); geom3D = extrude(geom2D,H); pdegplot(geom3D,FaceLabels="on",FaceAlpha=0.3)

Create a finite element model for thermal analysis and include the geometry.
fem = femodel(AnalysisType="thermalSteady",Geometry=geom3D);Generate a mesh.
fem = generateMesh(fem,Hmax=H/4);
Account for surface-to-surface radiation in the enclosure formed by the plates by using the setupRadiation function.
fem = setupRadiation(fem,EnclosureFaces=[5 6]); fem.ThermalRadiation
ans =
surfaceToSurfaceSettings with properties:
ViewFactors: [204×204 double]
ViewFactorMethod: "areaintegral"
Enclosures: dictionary (string ⟼ enclosureDefinition) with 1 entry
ParticipatingEnclosures: "Enclosure_1"
If you do not specify enclosure names, setupRadiation uses the default names, such as "Enclosure_1". The function also sets the enclosure perfectness to true, which means that the solver ignores ambient radiation. To change these settings, use the EnclosureNames and PerfectEnclosure name-value arguments.
fem = setupRadiation(fem,EnclosureFaces=[5 6], ... EnclosureNames="two_plates", ... PerfectEnclosure=false); fem.ThermalRadiation
ans =
surfaceToSurfaceSettings with properties:
ViewFactors: [204×204 double]
ViewFactorMethod: "areaintegral"
Enclosures: dictionary (string ⟼ enclosureDefinition) with 1 entry
ParticipatingEnclosures: "two_plates"
Specify ambient temperature and emissivity for the enclosure formed by the plates.
fem.FaceLoad([5 6]) = faceLoad(AmbientTemperature=0,Emissivity=0.5);
Since R2024a
Find view factors in a cubical cavity using the double area integral method and the Monte Carlo method.
Create and plot a geometry of a sphere with a cubical cavity.
L = 1;
g1 = multisphere(L*1.1);
g2 = multicuboid(L,L,L,Zoffset=-L/2);
g1 = addVoid(g1,g2);
pdegplot(g1,FaceAlpha=0.2,FaceLabels="on")
Create a finite element model for thermal analysis and include the geometry.
fem = femodel(AnalysisType="thermalSteady",Geometry=g1);Generate a mesh.
fem = generateMesh(fem,Hmax=0.1*L);
Account for surface-to-surface radiation in the enclosure represented by the cubical cavity. By default, the setupRadiation function uses the double area integral method to compute view factors.
fem = setupRadiation(fem,EnclosureFaces=2:7);
The toolbox computes view factors based on the finite element mesh. Use the extractGeometricAreaViewFactors helper function to map the computed mesh view factors to the geometric face view factors. To view the code for this function, see Helper Function.
[~,ViewFactors] = extractGeometricAreaViewFactors(fem); ViewFactors
ViewFactors = 6×6
0.0000 0.2020 0.2109 0.2111 0.2106 0.2113
0.2020 0.0000 0.2110 0.2116 0.2114 0.2116
0.2117 0.2117 0.0000 0.2112 0.2019 0.2114
0.2115 0.2111 0.2114 0.0000 0.2112 0.2019
0.2121 0.2113 0.2019 0.2114 0.0000 0.2110
0.2113 0.2111 0.2112 0.2019 0.2115 0.0000
The view factors between each face must be 0.2, which means that all off-diagonal entries in ViewFactors must be very close to 0.2. Now, compute the view factors using the Monte Carlo method and compare the results.
fem = setupRadiation(fem, ... EnclosureFaces=2:7, ... ViewFactorMethod="montecarlo");
The Monte Carlo method improves results for enclosures with a shared edge, but it can take longer to compute view factors.
[~,ViewFactors_MC] = extractGeometricAreaViewFactors(fem); ViewFactors_MC
ViewFactors_MC = 6×6
0 0.2058 0.2015 0.1998 0.1976 0.2008
0.2071 0 0.2051 0.2010 0.2033 0.2005
0.2007 0.2013 0 0.2059 0.2016 0.2034
0.1979 0.2005 0.1988 0 0.2012 0.2053
0.2017 0.2004 0.2002 0.2029 0 0.2005
0.2034 0.2017 0.2030 0.2005 0.2045 0
Helper Function
This code defines the extractGeometricAreaViewFactors helper function, which maps view factors from a mesh to a geometry.
function [A,F] = extractGeometricAreaViewFactors(fem) map = []; for i = 1:length(fem.ThermalRadiation.ParticipatingEnclosures) map = [map, ... fem.ThermalRadiation.Enclosures( ... fem.ThermalRadiation.ParticipatingEnclosures(i) ... ).BoundaryFacetMapping]; end A = zeros(size(map,2),1); F = zeros(size(map,2)); for i = 1:size(map,2) FacetsIDi = map(2:3,i); FacetsIDi = FacetsIDi(1):FacetsIDi(end); FacetsAi = fem.ThermalRadiation.Area(FacetsIDi); Ai = sum(FacetsAi); A(i) = Ai; for j = 1:size(map,2) FacetsIDj = map(2:3,j); FacetsIDj = FacetsIDj(1):FacetsIDj(end); FacetsFij = ... fem.ThermalRadiation.ViewFactors(FacetsIDj, ... FacetsIDi); F(i,j) = sum(FacetsFij*FacetsAi)/sum(FacetsAi); end end end
Version History
Introduced in R2023bIn addition to the default double area integral method for computing view factors, the
toolbox now supports the Monte Carlo method. To support different view factor computation
methods, the surfaceToSurfaceSettings object has a new
ViewFactorMethod property.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)