def _compute_site_response_term(self, C, sites, pga1000):
        """
        Compute and return site response model term
        This GMPE adopts the same site response scaling model of
        Walling et al (2008) as implemented in the Abrahamson & Silva (2008)
        GMPE. The functional form is retained here.
        """
        vs_star = sites.vs30.copy()
        vs_star[vs_star > 1000.0] = 1000.
        arg = vs_star / C["vlin"]
        site_resp_term = C["theta12"] * np.log(arg)
        # Get linear scaling term
        idx = sites.vs30 >= C["vlin"]
        site_resp_term[idx] += (C["b"] * self.CONSTS["n"] * np.log(arg[idx]))
        # Get nonlinear scaling term
        idx = np.logical_not(idx)
        site_resp_term[idx] += (
            -C["b"] * np.log(pga1000[idx] + self.CONSTS["c"]) +
            C["b"] * np.log(pga1000[idx] + self.CONSTS["c"] *
                            (arg[idx] ** self.CONSTS["n"])))
        return site_resp_term
def _compute_site_response_term ( self , C , sites , pga1000 ) : vs_star = sites . vs30 . copy ( ) vs_star [ vs_star > 1000.0 ] = 1000. arg = vs_star / C [ "vlin" ] site_resp_term = C [ "theta12" ] * np . log ( arg ) idx = sites . vs30 >= C [ "vlin" ] site_resp_term [ idx ] += ( C [ "b" ] * self . CONSTS [ "n" ] * np . log ( arg [ idx ] ) ) idx = np . logical_not ( idx ) site_resp_term [ idx ] += ( - C [ "b" ] * np . log ( pga1000 [ idx ] + self . CONSTS [ "c" ] ) + C [ "b" ] * np . log ( pga1000 [ idx ] + self . CONSTS [ "c" ] * ( arg [ idx ] ** self . CONSTS [ "n" ] ) ) ) return site_resp_term
Compute and return site response model term
        This GMPE adopts the same site response scaling model of
        Walling et al (2008) as implemented in the Abrahamson & Silva (2008)
        GMPE. The functional form is retained here.