Пример #1
0
    def _calc_Tm(alp, t, mag_vs_time):
        """calculate the Tm expression at a given time

        Parameters
        ----------
        alp : float
            eigenvalue, note that this will be squared
        t : float
            time value
        mag_vs_time: PolyLine
            magnitude vs time

        Returns
        -------
        Tm: float
            time dependant function

        """

        loadmag = mag_vs_time.y
        loadtim = mag_vs_time.x
        (
            ramps_less_than_t,
            constants_less_than_t,
            steps_less_than_t,
            ramps_containing_t,
            constants_containing_t,
        ) = pwise.segment_containing_also_segments_less_than_xi(loadtim, loadmag, t, steps_or_equal_to=True)

        exp = math.exp
        Tm = 0
        cv = 1  # I copied the Tm function from SchiffmanAndStein1970
        i = 0  # only one time value
        for k in steps_less_than_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k + 1]

            Tm += (sig2 - sig1) * exp(-cv * alp ** 2 * (t - loadtim[k]))
        for k in ramps_containing_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k + 1]
            t1 = loadtim[k]
            t2 = loadtim[k + 1]

            #            Tm += (-sig1 + sig2)/(alp**2*cv*(-t1 + t2)) - (-sig1 + sig2)*exp(-alp**2*cv*t)*exp(alp**2*cv*t1)/(alp**2*cv*(-t1 + t2))
            Tm += (-sig1 + sig2) / (alp ** 2 * cv * (-t1 + t2)) - (-sig1 + sig2) * exp(-alp ** 2 * cv * (t - t1)) / (
                alp ** 2 * cv * (-t1 + t2)
            )

        for k in ramps_less_than_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k + 1]
            t1 = loadtim[k]
            t2 = loadtim[k + 1]
            #            Tm += -(-sig1 + sig2)*exp(-alp**2*cv*t)*exp(alp**2*cv*t1)/(alp**2*cv*(-t1 + t2)) + (-sig1 + sig2)*exp(-alp**2*cv*t)*exp(alp**2*cv*t2)/(alp**2*cv*(-t1 + t2))
            Tm += -(-sig1 + sig2) * exp(-alp ** 2 * cv * (t - t1)) / (alp ** 2 * cv * (-t1 + t2)) + (
                -sig1 + sig2
            ) * exp(-alp ** 2 * cv * (t - t2)) / (alp ** 2 * cv * (-t1 + t2))
        return Tm
Пример #2
0
    def _calc_Tm(alp, t, mag_vs_time):
        """calculate the Tm expression at a given time

        Parameters
        ----------
        alp : float
            eigenvalue, note that this will be squared
        t : float
            time value
        mag_vs_time: PolyLine
            magnitude vs time

        Returns
        -------
        Tm: float
            time dependant function

        """

        loadmag = mag_vs_time.y
        loadtim = mag_vs_time.x
        (ramps_less_than_t, constants_less_than_t, steps_less_than_t,
         ramps_containing_t, constants_containing_t) = (
             pwise.segment_containing_also_segments_less_than_xi(
                 loadtim, loadmag, t, steps_or_equal_to=True))

        exp = math.exp
        Tm = 0
        cv = 1  # I copied the Tm function from SchiffmanAndStein1970
        i = 0  #only one time value
        for k in steps_less_than_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k + 1]

            Tm += (sig2 - sig1) * exp(-cv * alp**2 * (t - loadtim[k]))
        for k in ramps_containing_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k + 1]
            t1 = loadtim[k]
            t2 = loadtim[k + 1]

            #            Tm += (-sig1 + sig2)/(alp**2*cv*(-t1 + t2)) - (-sig1 + sig2)*exp(-alp**2*cv*t)*exp(alp**2*cv*t1)/(alp**2*cv*(-t1 + t2))
            Tm += (-sig1 + sig2) / (alp**2 * cv *
                                    (-t1 + t2)) - (-sig1 + sig2) * exp(
                                        -alp**2 * cv *
                                        (t - t1)) / (alp**2 * cv * (-t1 + t2))

        for k in ramps_less_than_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k + 1]
            t1 = loadtim[k]
            t2 = loadtim[k + 1]
            #            Tm += -(-sig1 + sig2)*exp(-alp**2*cv*t)*exp(alp**2*cv*t1)/(alp**2*cv*(-t1 + t2)) + (-sig1 + sig2)*exp(-alp**2*cv*t)*exp(alp**2*cv*t2)/(alp**2*cv*(-t1 + t2))
            Tm += -(-sig1 + sig2) * exp(-alp**2 * cv * (t - t1)) / (
                alp**2 * cv *
                (-t1 + t2)) + (-sig1 + sig2) * exp(-alp**2 * cv *
                                                   (t - t2)) / (alp**2 * cv *
                                                                (-t1 + t2))
        return Tm
Пример #3
0
    def _calc_Tm(self, cv, beta, t):
        """calculate the Tm expression at a given time

        Parameters
        ----------
        cv : float
            coefficient of vertical consolidation for layer
        beta : float
            eigenvalue for layer
        t : float
            time value

        Returns
        -------
        Tm: float
            time dependant function

        """
        loadmag = self.surcharge_vs_time.y
        loadtim = self.surcharge_vs_time.x
        (ramps_less_than_t, constants_less_than_t, steps_less_than_t,
         ramps_containing_t, constants_containing_t
         ) = pwise.segment_containing_also_segments_less_than_xi(
             loadtim, loadmag, t, steps_or_equal_to=True)

        exp = math.exp
        Tm = 0
        i = 0  #only one time value
        for k in steps_less_than_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k + 1]

            Tm += (sig2 - sig1) * exp(-cv * beta**2 * (t - loadtim[k]))
        for k in ramps_containing_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k + 1]
            t1 = loadtim[k]
            t2 = loadtim[k + 1]

            #            Tm += (-sig1 + sig2)/(beta**2*cv*(-t1 + t2)) - (-sig1 + sig2)*exp(-beta**2*cv*t)*exp(beta**2*cv*t1)/(beta**2*cv*(-t1 + t2))
            Tm += (-sig1 + sig2) / (beta**2 * cv *
                                    (-t1 + t2)) - (-sig1 + sig2) * exp(
                                        -beta**2 * cv *
                                        (t - t1)) / (beta**2 * cv * (-t1 + t2))

        for k in ramps_less_than_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k + 1]
            t1 = loadtim[k]
            t2 = loadtim[k + 1]
            #            Tm += -(-sig1 + sig2)*exp(-beta**2*cv*t)*exp(beta**2*cv*t1)/(beta**2*cv*(-t1 + t2)) + (-sig1 + sig2)*exp(-beta**2*cv*t)*exp(beta**2*cv*t2)/(beta**2*cv*(-t1 + t2))
            Tm += -(-sig1 + sig2) * exp(-beta**2 * cv * (t - t1)) / (
                beta**2 * cv *
                (-t1 + t2)) + (-sig1 + sig2) * exp(-beta**2 * cv *
                                                   (t - t2)) / (beta**2 * cv *
                                                                (-t1 + t2))
        return Tm
Пример #4
0
    def _calc_Tm(self, cv, beta, t):
        """calculate the Tm expression at a given time

        Parameters
        ----------
        cv : float
            coefficient of vertical consolidation for layer
        beta : float
            eigenvalue for layer
        t : float
            time value

        Returns
        -------
        Tm: float
            time dependant function

        """
        loadmag = self.surcharge_vs_time.y
        loadtim = self.surcharge_vs_time.x
        (ramps_less_than_t, constants_less_than_t, steps_less_than_t,
            ramps_containing_t, constants_containing_t) = pwise.segment_containing_also_segments_less_than_xi(loadtim, loadmag, t, steps_or_equal_to = True)

        exp = math.exp
        Tm=0
        i=0 #only one time value
        for k in steps_less_than_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k+1]

            Tm += (sig2-sig1)*exp(-cv * beta**2 * (t-loadtim[k]))
        for k in ramps_containing_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k+1]
            t1 = loadtim[k]
            t2 = loadtim[k+1]

#            Tm += (-sig1 + sig2)/(beta**2*cv*(-t1 + t2)) - (-sig1 + sig2)*exp(-beta**2*cv*t)*exp(beta**2*cv*t1)/(beta**2*cv*(-t1 + t2))
            Tm += (-sig1 + sig2)/(beta**2*cv*(-t1 + t2)) - (-sig1 + sig2)*exp(-beta**2*cv*(t-t1))/(beta**2*cv*(-t1 + t2))

        for k in ramps_less_than_t[i]:
            sig1 = loadmag[k]
            sig2 = loadmag[k+1]
            t1 = loadtim[k]
            t2 = loadtim[k+1]
#            Tm += -(-sig1 + sig2)*exp(-beta**2*cv*t)*exp(beta**2*cv*t1)/(beta**2*cv*(-t1 + t2)) + (-sig1 + sig2)*exp(-beta**2*cv*t)*exp(beta**2*cv*t2)/(beta**2*cv*(-t1 + t2))
            Tm += -(-sig1 + sig2)*exp(-beta**2*cv*(t-t1))/(beta**2*cv*(-t1 + t2)) + (-sig1 + sig2)*exp(-beta**2*cv*(t-t2))/(beta**2*cv*(-t1 + t2))
        return Tm