Skip to content

Getting 0 view factor

Dear sir/madam,

I'm trying to compute view factors between several squares, based on your rectangle / triangle example; however, all I am getting is 0, as it seems the rectangles do not see each other (but they should).

This is the code I'm using:

import pyvista as pv
from pyviewfactor import get_visibility, compute_viewfactor

# Basic example

# ###########
# 0. Geometry
# ###########

# Create 8 rectangles with spacecraft shape
point1A = [0, 0.5, 0]
point1B = [0 ,-0.5,0]
point1C = [0 ,-0.5,1]
square1 = pv.Rectangle([point1A, point1B, point1C])

point2A = [0,0.5,1]
point2B = [0,0.5,0]
point2C = [1,0.5,0]
square2 = pv.Rectangle([point2A, point2B, point2C])

point3A = [1,0.5,0]
point3B = [1,-0.5,0]
point3C = [1,-0.5,1]
square3 = pv.Rectangle([point3A, point3B, point3C])

point4A = [0,-0.5,1]
point4B = [0,-0.5,0]
point4C = [1,-0.5,0]
square4 = pv.Rectangle([point4A, point4B, point4C])

point5A = [0,0.5,1]
point5B = [1,0.5,1]
point5C = [1,-0.5,1]
square5 = pv.Rectangle([point5A, point5B, point5C])

point6A = [0,0.5,0]
point6B = [1,0.5,0]
point6C = [1,-0.5,0]
square6 = pv.Rectangle([point6A, point6B, point6C])

point7A = [0,1.5,1]
point7B = [0,1.5,0]
point7C = [0,0.5,0]
square7 = pv.Rectangle([point7A, point7B, point7C])

point8A = [0,-0.5,1]
point8B = [0,-0.5,0]
point8C = [0,-1.5,0]
square8 = pv.Rectangle([point8A, point8B, point8C])


# #################################
# 1. Vizualitions with face normals
# #################################

pl = pv.Plotter()
pl.add_mesh(square1, color="navy", opacity=1)
pl.add_mesh(square2, color="gold", opacity=1)
pl.add_mesh(square3, color="gold", opacity=1)
pl.add_mesh(square4, color="gold", opacity=1)
pl.add_mesh(square5, color="black", opacity=1)
pl.add_mesh(square6, color="black", opacity=1)
pl.add_mesh(square7, color="navy", opacity=1)
pl.add_mesh(square8, color="navy", opacity=1)

pl.show()

# ##########################################################
# 2. View factor computation for one cell against all others
# ##########################################################
if get_visibility(square3, square1):
    F = compute_viewfactor(square3, square1)
    print("VF :", F)
else:
    print("Not facing each other")

Could someone let me know what's wrong?

Edited by Mateusz Bogdan