Validation: Howell Catalog

RadiativeViewFactor.jl is validated against published configuration factors from J. R. Howell, A Catalog of Radiation Heat Transfer Configuration Factors, 3rd ed., https://www.thermalradiation.net, Section C (factors from finite areas to finite areas). The suite lives in benchmarks/howell/; this page summarises its recorded results. benchmarks/howell/RESULTS.md has the full discussion, including runtimes.

Summary

The suite covers 22 of the catalog's 162 Section C entries at 115 parameter points. Every point is run with deterministic quadrature and pair-area Monte Carlo on the same mesh; the 3D points are also run with ray-shooting Monte Carlo. Error is 100 × |F_computed − F_catalog| / F_catalog.

KernelSettingsPointsWithin 1%Median error
Quadraturenquad=6115109 (95%)0.00503%
Pair-area Monte Carlomonte_carlo=true, n_samples=5000115110 (96%)0.00796%
Ray-shooting Monte Carloraytrace=true, n_rays=10000, 3D only7259 (82%)0.176%
CaseGeometryPointsQuad medianQuad worstMC medianMC worstRay medianRay worst
C-1Infinite parallel plates, equal width42.0e-14%5.4e-14%3.7e-05%3.1e-04%——
C-2Infinite parallel plates, unequal width35.1e-14%7.9e-14%1.2e-04%1.6e-04%——
C-3Infinite perpendicular plates, common edge40.0183%0.0511%0.0336%0.169%——
C-4Infinite equal plates, common edge, angle α40.0789%0.384%0.0319%0.0539%——
C-8Infinite plane to two rows of tubes60.379%3.74%0.369%3.75%——
C-10Rectangle to semi-infinite rectangle at angle60.801%3.31%0.801%3.31%0.0137%0.0561%
C-11Identical parallel opposed rectangles43.2e-13%3.9e-13%6.2e-04%0.00101%0.0491%0.0895%
C-14Perpendicular rectangles, common edge40.011%0.0227%0.00932%0.0251%0.187%0.278%
C-33Hexagonal prism180.0187%0.862%0.0194%0.862%0.119%1.23%
C-34Parallel regular polygons155.6e-04%0.498%0.00111%0.5%0.0413%0.47%
C-40Coaxial parallel disks, equal radius33.1e-05%4.0e-05%0.00159%0.00203%0.255%0.26%
C-41Coaxial parallel disks, unequal radius35.0e-06%4.0e-05%2.3e-04%5.6e-04%0.185%0.217%
C-63Concentric infinite cylinders34.3e-04%0.00107%2.1e-04%3.0e-04%——
C-68Infinite parallel cylinders, equal diameter44.3e-05%1.2e-04%0.00138%0.00561%——
C-69Infinite parallel cylinders, unequal radius38.5e-05%9.3e-05%0.00275%0.00363%——
C-72Cylinder in square array60.00257%0.0213%0.00393%0.0613%——
C-73Cylinder in triangular array60.00448%1.14%0.00829%0.395%——
C-79Cylinder base to inside lateral surface30.0147%0.0207%0.0153%0.0223%0.806%0.849%
C-109Cone interior to base30.206%0.218%0.205%0.218%0.546%0.684%
C-125Sphere to coaxial disk40.00172%0.00477%0.00146%0.00829%1.54%1.85%
C-135Concentric spheres30.0253%0.0268%0.0252%0.0272%2.19%2.84%
C-137Two spheres of unequal radius60.259%0.658%0.259%0.658%1.49%2.55%

A dash means the kernel was not run: ray-shooting supports only 3D surface meshes, so the 2D cross-section cases (C-1 to C-4, C-8, C-63, C-68, C-69, C-72, C-73) are skipped for that kernel.

Method

Each case builds its geometry with Gmsh (second-order elements, OpenCASCADE kernel), loads it with load_mesh, computes the matrix with compute_view_factors, and compares one entry of the group-to-group matrix against the catalog value at the same parameters. Fifteen cases use a closed-form catalog equation (transcribed in analytic.jl); seven (C-8, C-10, C-33, C-34, C-72, C-73, C-137) use the catalog's published tables, extracted from the page HTML into tables.jl and checked against closure identities. Cases with infinitely long geometry are meshed as 2D cross-sections.

julia --project=benchmarks -e 'using Pkg; Pkg.develop(path="."); Pkg.instantiate()'
julia --project=benchmarks --threads=auto benchmarks/howell/run.jl            # quadrature + pair-area MC
julia --project=benchmarks --threads=auto benchmarks/howell/run_raytrace.jl   # ray-shooting MC

The figures below show each geometry at one representative parameter set; the tables list every parameter point run. Colours identify the surfaces named in each legend. Points with error of 1% or more are marked ⚠.

Cases

C-1: Infinite parallel plates, equal width

C-1 geometry

Shown with w = 1, h = 1 (cross-section).

Two infinitely long, directly opposed plates of width w separated by h. Reference: closed-form equation, H = h/w. Meshed as a 2D cross-section (per infinite depth).

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2w=1, h=0.250.7807760.7807762.8e-14%3.1e-04%—
1 → 2w=1, h=0.50.6180340.61803401.6e-05%—
1 → 2w=1, h=1.00.4142140.4142145.4e-14%2.8e-05%—
1 → 2w=1, h=2.00.2360680.2360681.2e-14%4.6e-05%—

C-2: Infinite parallel plates, unequal width

As C-1, but with plate widths b and c separated by a, centrelines on a common perpendicular. Reference: closed-form equation. Same geometry builder and figure as C-1.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2a=1, b=0.5, c=1.00.4384470.4384475.1e-14%1.6e-05%—
1 → 2a=1, b=1.0, c=2.00.6847420.6847424.9e-14%1.2e-04%—
1 → 2a=1, b=2.0, c=0.50.1753910.1753917.9e-14%1.6e-04%—

C-3: Infinite perpendicular plates, common edge

C-3 geometry

Shown with equal widths and α = 90° (cross-section).

Two infinitely long plates of widths w (A1) and h (A2) sharing an edge at 90°; F is A1 → A2. Reference: closed-form equation. 2D cross-section.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2w=1, h=0.30.1279850.1279740.00799%0.0327%—
1 → 2w=1, h=0.60.2169050.216960.0253%0.0346%—
1 → 2w=1, h=1.00.2928930.2930430.0511%0.0197%—
1 → 2w=1, h=2.00.3819660.3820090.0112%0.169%—

C-4: Infinite equal plates, common edge, angle α

Two infinitely long plates of equal width sharing an edge at included angle α. Reference: closed-form equation, F = 1 − sin(α/2). Same builder and figure as C-3.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2w=1, α=0.5240.7411810.7440280.384%0.0367%—
1 → 2w=1, α=1.0470.50.5005330.107%0.0539%—
1 → 2w=1, α=1.5710.2928930.2930430.0511%0.0271%—
1 → 2w=1, α=2.0940.1339750.134020.034%0.011%—

C-8: Infinite plane to two rows of tubes

C-8 geometry

Shown with R = 3 and 9 tubes per row; the benchmark mesh uses 31 tubes per row.

An infinite plane facing two staggered rows of unit-diameter tubes in an equilateral triangular array, R = p/d. F is from a one-pitch central segment of the plane to all tubes of the front row, and to all tubes of the second row. Reference: published table. Every tube is its own obstruction group (obstruction_groups never applies a group to a pair involving itself, so grouping a row together would stop its tubes shadowing one another).

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
plane → front row of tubesR=2.00.65760.6573690.0351%0.036%—
plane → front row of tubesR=3.00.46750.4666850.174%0.174%—
plane → front row of tubesR=5.00.29410.2936780.144%0.135%—
plane → second row of tubesR=2.00.19530.2025953.74% ⚠3.75% ⚠—
plane → second row of tubesR=3.00.21490.2179781.43% ⚠1.56% ⚠—
plane → second row of tubesR=5.00.18240.1834630.583%0.563%—

C-10: Rectangle to semi-infinite rectangle at angle

C-10 geometry

Shown with a = b = 1, φ = 45°, and A2 truncated to width 3 for illustration; the benchmark mesh uses width 80.

A finite rectangle A1 sharing an edge of length b with a second rectangle A2 at included angle φ, A2 extending to infinity away from the edge; A = a/b. Reference: published table. A2 is a finite rectangle of width 80 with a graded mesh (fine near the shared edge). Run with use_duffy=true.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2A=0.4, φ=45.0°0.7062950.7296663.31% ⚠3.31% ⚠4.4e-04%
1 → 2A=0.4, φ=120.0°0.158270.1602841.27% ⚠1.27% ⚠0.0561%
1 → 2A=1.0, φ=45.0°0.5739510.5803971.12% ⚠1.12% ⚠0.0175%
1 → 2A=1.0, φ=120.0°0.1100460.1105030.415%0.416%0.00872%
1 → 2A=2.0, φ=45.0°0.4410040.4431180.479%0.479%0.00985%
1 → 2A=2.0, φ=120.0°0.0756120.07570210.119%0.12%0.0441%

C-11: Identical parallel opposed rectangles

C-11 geometry

Shown with a = 2, b = 1, c = 1.

Two identical a × b rectangles in parallel planes separated by c. Reference: closed-form equation.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2a=1.0, b=1.0, c=1.00.1998250.1998252.8e-13%2.3e-04%0.0123%
1 → 2a=2.0, b=1.0, c=1.00.2858750.2858753.9e-13%4.7e-04%0.0407%
1 → 2a=1.0, b=1.0, c=0.50.4152530.4152532.7e-13%0.00101%0.0575%
1 → 2a=2.0, b=4.0, c=1.00.5089890.5089893.7e-13%7.7e-04%0.0895%

C-14: Perpendicular rectangles, common edge

C-14 geometry

Shown with l = w = h = 1.

Two rectangles of common length l sharing an edge at 90°: A1 is l × w, A2 is l × h; F is A1 → A2. Reference: closed-form equation. Run with use_duffy=true.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2l=1.0, w=1.0, h=1.00.2000440.2000890.0227%0.0251%0.142%
1 → 2l=1.0, w=2.0, h=1.00.1164260.1164380.0103%0.00742%0.232%
1 → 2l=1.0, w=1.0, h=0.50.1461870.1462040.0117%0.0112%0.0155%
1 → 2l=2.0, w=1.0, h=1.00.2406360.2406480.00503%0.00633%0.278%

C-33: Hexagonal prism

C-33 geometry

Shown with l = h = 1.

Interior of a hexagonal prism with side l and height h, L = l/h. Six factors per point: wall to adjacent, next, and opposite wall, end to wall, wall to end, and end to end. Reference: published table. Run with reverse_normals=true, use_duffy=true, and radiating_groups set to the groups each factor reads.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
wall→adjacent wallL=0.50.106560.1065860.0243%0.0236%0.0112%
wall→next wallL=0.50.1371520.1371521.3e-04%0.00194%0.127%
wall→opposite wallL=0.50.1442010.1442013.1e-04%0.00128%0.235%
end→wallL=0.50.1417870.1418140.0188%0.0186%0.027%
wall→endL=0.50.1841870.1842210.0186%0.0194%0.368%
end→endL=0.50.1492770.1492750.00135%9.8e-04%0.111%
wall→adjacent wallL=1.00.0866150.08664080.0297%0.0323%0.0261%
wall→next wallL=1.00.0867630.0875110.862%0.862%1.23% ⚠
wall→opposite wallL=1.00.0875980.08759811.7e-04%0.00336%0.0166%
end→wallL=1.00.1083580.1086020.225%0.227%0.189%
wall→endL=1.00.2828230.2821560.236%0.234%0.264%
end→endL=1.00.346850.3485760.498%0.499%0.65%
wall→adjacent wallL=2.00.0632480.06326040.0197%0.0225%0.296%
wall→next wallL=2.00.0481660.04816680.00157%2.0e-04%0.0343%
wall→opposite wallL=2.00.0468920.04689192.2e-04%0.00141%0.345%
end→wallL=2.00.0702710.07028420.0188%0.0204%0.0809%
wall→endL=2.00.365140.3652070.0184%0.0194%0.0463%
end→endL=2.00.5783720.5783732.2e-04%5.6e-04%0.0361%

C-34: Parallel regular polygons

C-34 geometry

Shown with n = 6, l = h = 1.

Two identical, aligned regular n-gons of side l in parallel planes separated by h, L = l/h, for n = 3, 4, 5, 6, 8. Reference: published table.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2n=3, L=0.40.0209530.02095510.0102%0.00971%0.407%
1 → 2n=4, L=0.40.0461370.04613749.0e-04%1.5e-04%0.225%
1 → 2n=5, L=0.40.0748120.07481173.4e-04%0.00226%0.0271%
1 → 2n=6, L=0.40.1056610.105668.5e-04%7.0e-04%0.0518%
1 → 2n=8, L=0.40.1695160.1694810.0207%0.0206%0.0413%
1 → 2n=3, L=1.00.1056040.1056060.00173%7.2e-04%0.0848%
1 → 2n=4, L=1.00.1998250.1998255.2e-05%2.3e-05%0.0133%
1 → 2n=5, L=1.00.2804650.2804635.6e-04%9.5e-04%0.116%
1 → 2n=6, L=1.00.3468490.3485760.498%0.5%0.47%
1 → 2n=8, L=1.00.4550240.4550130.0024%0.0018%0.0401%
1 → 2n=3, L=2.00.266560.2665614.6e-04%0.00291%0.0512%
1 → 2n=4, L=2.00.4152530.4152536.8e-05%7.1e-04%0.0211%
1 → 2n=5, L=2.00.5107510.5107521.1e-04%5.5e-04%0.0104%
1 → 2n=6, L=2.00.5783720.5783732.2e-04%0.00111%6.8e-04%
1 → 2n=8, L=2.00.6688020.6687993.9e-04%0.00214%0.0153%

C-40: Coaxial parallel disks, equal radius

C-40 geometry

Shown with r1 = 0.5, r2 = 1, separation 1.

Two coaxial parallel disks of equal radius r separated by a. Reference: closed-form equation (C-41 with r1 = r2).

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2r=0.5, a=0.50.3819660.3819662.0e-05%0.00159%0.159%
1 → 2r=0.5, a=1.00.1715730.1715733.1e-05%5.2e-04%0.255%
1 → 2r=0.5, a=2.00.05572810.05572814.0e-05%0.00203%0.26%

C-41: Coaxial parallel disks, unequal radius

Coaxial parallel disks of radii r1 and r2 separated by a; F is disk 1 → disk 2. Reference: closed-form equation. Same builder and figure as C-40.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2r1=0.5, r2=0.75, a=1.50.1865130.1865135.0e-06%2.3e-04%0.217%
1 → 2r1=0.5, r2=1.0, a=1.00.4688710.4688711.2e-06%5.6e-04%0.167%
1 → 2r1=1.0, r2=0.5, a=1.00.1172180.1172184.0e-05%5.1e-05%0.185%

C-63: Concentric infinite cylinders

C-63 geometry

Shown with r1 = 0.5, r2 = 1 (cross-section).

Infinitely long concentric cylinders; F is outer → inner, F = D1/D2. Reference: closed-form equation. 2D cross-section.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
outer → innerr1=0.5, r2=0.750.6666670.666674.3e-04%3.0e-04%—
outer → innerr1=0.5, r2=1.00.50.5000011.9e-04%2.1e-04%—
outer → innerr1=0.5, r2=2.00.250.2499970.00107%5.6e-05%—

C-68: Infinite parallel cylinders, equal diameter

C-68 geometry

Shown with r1 = 0.5, r2 = 0.75, s = 1 (cross-section).

Two infinitely long parallel cylinders of radius r with surface-to-surface gap s (not axis-to-axis). Reference: closed-form equation. 2D cross-section, reverse_normals=true.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2r=0.5, s=0.50.1106960.1106961.2e-04%0.00561%—
1 → 2r=0.5, s=1.00.08137580.08137585.5e-06%0.00165%—
1 → 2r=0.5, s=2.00.05356010.05356013.9e-05%0.00111%—
1 → 2r=0.5, s=4.00.03193840.03193844.7e-05%8.4e-04%—

C-69: Infinite parallel cylinders, unequal radius

As C-68 with radii r1 and r2; s is again the surface-to-surface gap. F is cylinder 1 → 2. Reference: closed-form equation. Same builder and figure as C-68.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2r1=0.5, r2=0.75, s=1.00.1092480.1092484.6e-06%0.00275%—
1 → 2r1=0.5, r2=1.5, s=0.50.207470.207478.5e-05%0.00145%—
1 → 2r1=1.0, r2=0.25, s=2.00.02491730.02491739.3e-05%0.00363%—

C-72: Cylinder in square array

C-72 geometry

Square array shown with P = 1.5 (cross-section).

A centre cylinder in an infinite square array of cylinders, P = p/d; F is from the centre cylinder to its nearest and diagonal neighbours. Reference: published table. Modelled as a 5 × 5 array, each cylinder its own obstruction group, with radiating_groups=[1,2,3].

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
nearest neighbourP=1.20.142740.1427417.5e-04%0.00306%—
diagonal neighbourP=1.20.08760.08761860.0213%0.0613%—
nearest neighbourP=1.50.11070.1106960.00372%0.0172%—
diagonal neighbourP=1.50.076520.07651890.00143%0.00481%—
nearest neighbourP=2.00.081380.08137570.00525%0.00302%—
diagonal neighbourP=2.00.056880.05687920.00139%0.00241%—

C-73: Cylinder in triangular array

As C-72 for an equilateral triangular array; F is to the nearest and next neighbour. Reference: published table. Same builder as C-72 (the figure shows the square variant).

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
nearest neighbourP=1.20.142740.1427417.5e-04%0.00862%—
next neighbourP=1.20.023670.02393991.14% ⚠0.395%—
nearest neighbourP=1.50.11070.1106960.00372%0.00796%—
next neighbourP=1.50.046060.04615750.212%0.108%—
nearest neighbourP=2.00.081380.08137570.00525%0.00523%—
next neighbourP=2.00.046270.04627140.00304%0.0027%—

C-79: Cylinder base to inside lateral surface

C-79 geometry

Shown with r = 0.5, h = 1.

Base of a right circular cylinder of radius r and height h to its inside lateral surface. Reference: closed-form equation. Run with reverse_normals=true, use_duffy=true.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2r=0.5, h=0.50.6180340.6181620.0207%0.0223%0.71%
1 → 2r=0.5, h=1.00.8284270.8285490.0147%0.0153%0.806%
1 → 2r=0.5, h=2.00.9442720.9444080.0144%0.0146%0.849%

C-109: Cone interior to base

C-109 geometry

Shown with r = 0.5, h = 1.

Interior lateral surface of a right circular cone to its base, F = 1/√(1 + (h/r)²). Reference: closed-form equation. Run with reverse_normals=true, use_duffy=true. Must be meshed with quads (see Limitations found by the suite).

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2r=0.5, h=0.50.7071070.7085620.206%0.205%0.431%
1 → 2r=0.5, h=1.00.4472140.4481910.218%0.218%0.546%
1 → 2r=0.5, h=2.00.2425360.242830.121%0.121%0.684%

C-125: Sphere to coaxial disk

C-125 geometry

Shown with rs = 0.3, r = 1, a = 1.

Sphere of radius rs to a coaxial disk of radius r whose plane lies a from the sphere centre. Reference: closed-form equation (independent of rs).

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2rs=0.3, r=0.25, a=10.01492870.0149280.00477%0.00829%1.66% ⚠
1 → 2rs=0.3, r=0.5, a=10.05278640.05278730.00179%4.4e-04%1.85% ⚠
1 → 2rs=0.3, r=1.0, a=10.1464470.1464490.00166%0.00248%1.42% ⚠
1 → 2rs=0.3, r=2.0, a=10.2763930.2763960.0011%2.9e-04%1.43% ⚠

C-135: Concentric spheres

C-135 geometry

Shown with r1 = 0.5, r2 = 1.

Concentric spheres; F is outer → inner, F = (r1/r2)². Reference: closed-form equation. Only the outer sphere's normals are reversed (reverse_group_normals), since the boolean cut already leaves the inner sphere outward-facing.

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
outer → innerr1=0.5, r2=0.750.4444440.444350.0212%0.0211%2.84% ⚠
outer → innerr1=0.5, r2=1.00.250.2499370.0253%0.0252%2.19% ⚠
outer → innerr1=0.5, r2=2.00.06250.06248320.0268%0.0272%1.65% ⚠

C-137: Two spheres of unequal radius

C-137 geometry

Shown with r1 = 0.4, r2 = 1, s = 0.6.

Two spheres of radii r1 and r2 with surface-to-surface gap s, R = r1/r2, S = s/r2; F is sphere 1 → 2. Reference: published table (3 significant figures).

FactorParametersCatalog FQuadrature FQuad errorMC errorRay error
1 → 2R=0.4, S=0.20.1140.1132490.658%0.658%1.88% ⚠
1 → 2R=0.4, S=1.00.04590.04588070.042%0.0409%1.54% ⚠
1 → 2R=1.0, S=0.20.05950.05931390.313%0.312%2.55% ⚠
1 → 2R=1.0, S=1.00.02940.0295870.636%0.635%1.43% ⚠
1 → 2R=3.0, S=0.20.01740.01736440.205%0.206%1.45% ⚠
1 → 2R=3.0, S=1.00.01130.01131650.146%0.147%0.945%

Limitations found by the suite

  • Shared-edge singularity. Surfaces that share an edge (C-3, C-4, C-10, C-14, C-33, C-79, C-109) are the least accurate. use_duffy=true is what makes them usable: it takes C-14 from 3.5% to 0.023% error. C-10 at A = 0.4 converges, but slowly, and the benchmark uses a moderate mesh.
  • Duffy is quad-only. It silently skips triangles. C-109 meshed with quads gives 0.2% error; the same geometry meshed with triangles gives 3.6–9.2%. Mesh edge-sharing geometries with quads.
  • Obstruction accuracy is set by facet count. Obstruction soups use only element corner nodes, so a curved blocker is an inscribed polygon. This is the source of C-8's second-row error (0.6–3.7%), which converges as tube facets are refined.
  • Ray-shooting bias on coarse curved meshes. Its worst points are on spheres (C-125, C-135, C-137). The error does not shrink with n_rays but does shrink with mesh refinement (C-135: 2.8% → 1.0% → 0.4% as element size halves twice), so it is a faceting effect, not sampling noise.

Cases not included

C-35 and C-154 were attempted and excluded: their published figures are ambiguous about which surface is meant, and no reading tried reproduced the table (errors of 39–83%, and two readings gave a self view factor above 1). C-13c (no geometry definition on the catalog page) and C-101 (needs raster equations as well as a table) were set aside. Most of the remaining entries carry an equation that must be transcribed by hand and a bespoke geometry; C-156 to C-162 (people and animals) have no meaningful mesh.

Recorded run

Quadrature and pair-area MCRay-shooting MC
Date2026-09-142026-09-15
Commit1a8508f (dirty tree)272bed9 (dirty tree)
MachineApple M3, 16 GB, 8 Julia threadsApple M3, 16 GB, 4 Julia threads
Julia1.12.71.12.7
Wall time6306 s198 s

Raw results, one row per point per kernel, are in benchmarks/howell/results.csv.