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
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
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
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