def __call__(model: modeltools.Model) -> None: con = model.parameters.control.fastaccess der = model.parameters.derived.fastaccess flu = model.sequences.fluxes.fastaccess d_pi = 3.141592653589793 d_b = 2.0 * d_pi * (der.doy[model.idx_sim] - 80.0) / 365.0 d_sc = (0.1645 * modelutils.sin(2.0 * d_b) - 0.1255 * modelutils.cos(d_b) - 0.025 * modelutils.sin(d_b)) flu.solartimeangle = (d_pi / 12.0 * ( (der.sct[model.idx_sim] + (con.longitude - der.utclongitude) / 15.0 + d_sc) - 12.0))
def __call__(model: modeltools.Model) -> None: fix = model.parameters.fixed.fastaccess con = model.parameters.control.fastaccess der = model.parameters.derived.fastaccess fac = model.sequences.factors.fastaccess d_b = 2.0 * fix.pi * (der.doy[model.idx_sim] - 80.0) / 365.0 d_sc = (0.1645 * modelutils.sin(2.0 * d_b) - 0.1255 * modelutils.cos(d_b) - 0.025 * modelutils.sin(d_b)) d_time = (der.sct[model.idx_sim] + (con.longitude - der.utclongitude) / 15.0 + d_sc) fac.solartimeangle = fix.pi / 12.0 * (d_time - 12.0)
def __call__(model: modeltools.Model) -> None: der = model.parameters.derived.fastaccess flu = model.sequences.fluxes.fastaccess d_pi = 3.141592653589793 if der.seconds < 60.0 * 60.0 * 24.0: d_delta = d_pi * der.seconds / 60.0 / 60.0 / 24.0 d_omega1 = flu.solartimeangle - d_delta d_omega2 = flu.solartimeangle + d_delta flu.extraterrestrialradiation = max( 12.0 * 4.92 / d_pi * flu.earthsundistance * (((d_omega2 - d_omega1) * modelutils.sin(der.latituderad) * modelutils.sin(flu.solardeclination)) + (modelutils.cos(der.latituderad) * modelutils.cos(flu.solardeclination) * (modelutils.sin(d_omega2) - modelutils.sin(d_omega1)))), 0.0, ) else: flu.extraterrestrialradiation = ( der.seconds * 0.0820 / 60.0 / d_pi * flu.earthsundistance * ((flu.sunsethourangle * modelutils.sin(der.latituderad) * modelutils.sin(flu.solardeclination)) + (modelutils.cos(der.latituderad) * modelutils.cos(flu.solardeclination) * modelutils.sin(flu.sunsethourangle))))
def __call__(model: modeltools.Model) -> None: der = model.parameters.derived.fastaccess flu = model.sequences.fluxes.fastaccess flu.solardeclination = 0.409 * modelutils.sin( 2 * 3.141592653589793 / 366 * (der.doy[model.idx_sim] + 1) - 1.39)
def __call__(model: modeltools.Model) -> None: fix = model.parameters.fixed.fastaccess der = model.parameters.derived.fastaccess fac = model.sequences.factors.fastaccess fac.solardeclination = 0.409 * modelutils.sin( 2 * fix.pi / 366 * (der.doy[model.idx_sim] + 1) - 1.39)