voxcity.simulator_gpu.solar.csf =============================== .. py:module:: voxcity.simulator_gpu.solar.csf .. autoapi-nested-parse:: 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 ---------- .. autoapisummary:: voxcity.simulator_gpu.solar.csf.PROTOTYPE_LAD voxcity.simulator_gpu.solar.csf.CSF_SOURCE_SKY Classes ------- .. toctree:: :hidden: /autoapi/voxcity/simulator_gpu/solar/csf/CSFCalculator .. autoapisummary:: voxcity.simulator_gpu.solar.csf.CSFCalculator Functions --------- .. autoapisummary:: voxcity.simulator_gpu.solar.csf.box_absorb_mc Module Contents --------------- .. py:data:: PROTOTYPE_LAD :value: 1.0 .. py:data:: CSF_SOURCE_SKY :value: -1 .. py:function:: 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) -> ti.types.vector(2, ti.f32) 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. :param boxsize_z: Box dimensions :param boxsize_y: Box dimensions :param boxsize_x: Box dimensions :param uvec_z: Unit vector of incoming flux (must have uvec_z > 0) :param uvec_y: Unit vector of incoming flux (must have uvec_z > 0) :param uvec_x: Unit vector of incoming flux (must have uvec_z > 0) :param dens: Box density (LAD) :param ext_coef: Extinction coefficient :param resol: Number of rays in x and y directions :returns: Vector of (area, transmissivity)