Procedure f3d_poly(NA,NB,xA[1..NA],yA[1..NA],zA[1..NA],xB[1..NB],yB[1..NB],zB[1..NB]:F_AB,F_BA,areaA,areaB)

The F3D_poly procedure returns the view factors between two polygons as well as their areas provided the following conditions are met:

1) polygons are planar (all vertices lie in the same plane)

2) polygons are simple (no self-intersecting polygons)

3) polygons are convex (in theory, concave polygons should work, but this remains untested)

Analytical solution derivation:

Inputs:

NA = number of vertices for polygon A

NB = number of vertices for polygon B

xA[1..NA] = array containing the x-coordinates of polygon A vertices (m or ft)

yA[1..NA] = array containing the y-coordinates of polygon A vertices (m or ft)

zA[1..NA] = array containing the z-coordinates of polygon A vertices (m or ft)

xB[1..NA] = array containing the x-coordinates of polygon B vertices (m or ft)

yB[1..NA] = array containing the y-coordinates of polygon B vertices (m or ft)

zB[1..NA] = array containing the z-coordinates of polygon B vertices (m or ft)

Outputs:

F_AB = view factor from polygon A to polygon B

F_BA = view factor from polygon B to polygon A

areaA = area of polygon A (m^2 or ft^2)

areaB = area of polygon B (m^2 or ft^2)

//Test case C, square and a pentagon, view factor should be F_AB = 0.1541243

$VarInfo AreaA units=m^2

$VarInfo AreaB units=m^2

NA=5

xA[1..5]=[0,0,0.5,1,1] [m]

yA[1..5]=[0,1,2,1,0] [m]

zA[1..5]=[0,0,0,0,0] [m]

NB=4

xB[1..4]=[0,0,0,0] [m]

yB[1..4]=[0,1,1,0] [m]

zB[1..4]=[0,0,1,1] [m]

{

F_AB = 0.1541, F_BA = 0.2312, areaA = 1.5 [m^2], areaB = 1 [m^2]}

View Factor Index