voxcity.simulator_gpu.solar.csf¶
Canopy Sink Factor (CSF) calculation for palm-solar.
Computes how much radiation is absorbed by plant canopy (LAD) before reaching surfaces. Based on PALM’s RTM methodology using Beer-Lambert law.
PALM CSF Structure (from radiation_model_mod.f90 lines ~920-930): - TYPE t_csf contains:
isurfs: Index of source face (-1 for sky, >= 0 for surface sources)
rcvf: Canopy view factor for faces / canopy sink factor for sky
PALM Canopy Absorption (radiation_model_mod.f90 lines ~9200-9250): - Diffuse from sky: pcbinswdif = csf * rad_sw_in_diff - Direct from sun: pcbinswdir = rad_sw_in_dir * pc_box_area * pc_abs_frac * dsitransc - From reflections: pcbinsw += csf * surfoutsl(isurfsrc) * asrc * grid_volume_inverse
palm_solar implements equivalent physics with GPU-parallel raytracing.
Attributes¶
Classes¶
GPU-accelerated Canopy Sink Factor calculator. |
Functions¶
|
PALM's box_absorb: Monte Carlo integration for box absorption. |
Module Contents¶
- voxcity.simulator_gpu.solar.csf.PROTOTYPE_LAD = 1.0¶
- voxcity.simulator_gpu.solar.csf.CSF_SOURCE_SKY = -1¶
- voxcity.simulator_gpu.solar.csf.box_absorb_mc(boxsize_z: taichi.f32, boxsize_y: taichi.f32, boxsize_x: taichi.f32, uvec_z: taichi.f32, uvec_y: taichi.f32, uvec_x: taichi.f32, dens: taichi.f32, ext_coef: taichi.f32, resol: taichi.i32)¶
PALM’s box_absorb: Monte Carlo integration for box absorption.
Computes effective cross-sectional area and transmissivity by tracing multiple rays through a box at the given angle.
- Parameters:
boxsize_z – Box dimensions
boxsize_y – Box dimensions
boxsize_x – Box dimensions
uvec_z – Unit vector of incoming flux (must have uvec_z > 0)
uvec_y – Unit vector of incoming flux (must have uvec_z > 0)
uvec_x – Unit vector of incoming flux (must have uvec_z > 0)
dens – Box density (LAD)
ext_coef – Extinction coefficient
resol – Number of rays in x and y directions
- Returns:
Vector of (area, transmissivity)