Class fast_shadow

Inheritance Relationships

Base Type

Class Documentation

class fast_shadow : public module_base

Calculates horizon shadows using an adaptation of Dozier and Frew 1990 to an unstructured mesh. Modifies the direct beam iswr ( = 0 W/m^2). Does not impact the diffuse beam

Requires:

  • Solar elevation “solar_el” [degrees]

  • Solar azimuth “solar_az” [degrees]

Provides:

  • Binary no shadow/shadow “shadow” [0 or 1=shadow]

Configuration:

{
   "steps": 10,
   "max_distance": 1000
}
steps

Number of steps along the search vector to check for a higher point

max_distance

Maximum search distance to look for a higher point

References:

  • Dozier, J., & Frew, J. (1990). Rapid calculation of terrain parameters for radiation modeling from digital elevation data. IEEE Transactions on Geoscience and Remote, 28(5), 963–969.

  • Marsh, C., Pomeroy, J., Wheater, H. (2020). The Canadian Hydrological Model (CHM) v1.0: a multi-scale, multi-extent, variable-complexity hydrological model – design and overview Geoscientific Model Development 13(1), 225-247. https://dx.doi.org/10.5194/gmd-13-225-2020

Type:

int

Default:

10

Type:

double

Default:

1000 m

Public Functions

fast_shadow(config_file cfg)
~fast_shadow()
virtual void run(mesh_elem &face)

Needs to be implemented by each data parallel module. This will be called and executed for each timestep

Parameters:
  • face – The terrain element (triangle) to be worked upon for an element parallel domain

  • global_param – A pointer to the shared global paramter space with domain-wide paramters

Public Members

int steps
double max_distance
double size_of_step