示例#1
0
 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))
示例#2
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)
示例#3
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))))
示例#4
0
 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)
示例#5
0
 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)