dUgz = np.gradient(Ugz, z) d2Ugx = np.gradient(dUgx, z) d2Ugy = np.gradient(dUgy, z) d2Ugz = np.gradient(dUgz, z) dUdx = np.gradient(Udx, z) dUdy = np.gradient(Udy, z) dUdz = np.gradient(Udz, z) energy2f_tot = eps2f*(np.abs(Udx)**2 + 4.0*np.abs(Udy)**2 + np.abs(Udz)**2) energy2f_tot+= (np.abs(Ugx)**2 + 4.0*np.abs(Ugy)**2 + np.abs(Ugz)**2) energy2f_A =-eps2f*np.real(Udz*np.conj(dvdx*Udx + 4.0*dvdy*Udy + dvdz(z)*Udz)) energy2f_A +=-np.real(Ugz*np.conj(dvgx*Ugx + 4.0*dvgy*Ugy)) energy2f_A2 = -eps2f*np.real(Udz*np.conj(4.0*dvdy*Udy)) - np.real(Ugz*np.conj(4.0*dvgy*Ugy)) energy2f_B =-eps2f*vdz(z)*np.real(dUdx*np.conj(Udx) + 4.0*dUdy*np.conj(Udy) + dUdz*np.conj(Udz)) energy2f_C = kx*np.imag(W*np.conj(Ugx)) - np.real(dW*np.conj(Ugz)) energy2f_D = (vgx - vdx)*np.real(Q*np.conj(Ugx)) + 4.0*(vgy - vdy)*np.real(Q*np.conj(Ugy)) - vdz(z)*np.real(Q*np.conj(Ugz)) energy2f_D += np.abs(Ugx - Udx)**2 + 4.0*np.abs(Ugy - Udy)**2 + np.abs(Ugz - Udz)**2 energy2f_D *= -eps2f/stokes dFx = d2Ugx - (4.0/3.0)*kx*kx*Ugx + (1.0/3.0)*1j*kx*dUgz + dln_rhog(z)*(dUgx + 1j*kx*Ugz) dFx-= W*(d2vgx + dln_rhog(z)*dvgx) dFx*= alpha dFy = d2Ugy - kx*kx*Ugy + dln_rhog(z)*dUgy dFy-= W*(d2vgy + dln_rhog(z)*dvgy) dFy*= alpha dFz = (4.0/3.0)*d2Ugz - kx*kx*Ugz + (1.0/3.0)*1j*kx*dUgx + dln_rhog(z)*((4.0/3.0)*dUgz - (2.0/3.0)*1j*kx*Ugx) dFz*= alpha
d2Ugz = np.gradient(dUgz, z) dUdx = np.gradient(Udx, z) dUdy = np.gradient(Udy, z) dUdz = np.gradient(Udz, z) energy2f_tot = eps2f * (np.abs(Udx)**2 + 4.0 * np.abs(Udy)**2 + np.abs(Udz)**2) energy2f_tot += (np.abs(Ugx)**2 + 4.0 * np.abs(Ugy)**2 + np.abs(Ugz)**2) #energy2f_tot/= (1.0 + eps2f) energy2f_A = -eps2f * np.real( Udz * np.conj(dvdx * Udx + 4.0 * dvdy * Udy + dvdz(z) * Udz)) energy2f_A += -np.real(Ugz * np.conj(dvgx * Ugx + 4.0 * dvgy * Ugy)) energy2f_A2 = -eps2f * np.real(Udz * np.conj(4.0 * dvdy * Udy)) - np.real( Ugz * np.conj(4.0 * dvgy * Ugy)) energy2f_B = -eps2f * vdz(z) * np.real(dUdx * np.conj(Udx) + 4.0 * dUdy * np.conj(Udy) + dUdz * np.conj(Udz)) energy2f_C = kx * np.imag(W * np.conj(Ugx)) - np.real(dW * np.conj(Ugz)) energy2f_D = (vgx - vdx) * np.real( Q * np.conj(Ugx)) + 4.0 * (vgy - vdy) * np.real(Q * np.conj(Ugy)) energy2f_D += np.abs(Ugx - Udx)**2 + 4.0 * np.abs(Ugy - Udy)**2 + np.abs(Ugz - Udz)**2 energy2f_D *= -eps2f / stokes energy2f_E = (eps2f / stokes) * vdz(z) * np.real( Q * np.conj(Ugz)) #buoyancy in 2fluid if viscosity_pert == True: dFx = d2Ugx - (4.0 / 3.0) * kx * kx * Ugx + ( 1.0 / 3.0) * 1j * kx * dUgz + dln_rhog(z) * (dUgx + 1j * kx * Ugz)
vdy = horiz_eqm['vdy'][:] horiz_eqm.close() dvgx = np.gradient(vgx, z) dvgy = np.gradient(vgy, z) dvdx = np.gradient(vdx, z) dvdy = np.gradient(vdy, z) d2vgx = np.gradient(dvgx, z) d2vgy = np.gradient(dvgy, z) d2vdx = np.gradient(dvdx, z) d2vdy = np.gradient(dvdy, z) eps2f = epsilon(z) vdx_lhs = vdz(z)*np.gradient(vdx,z) vdx_rhs = 2.0*vdy - (vdx - vgx)/stokes vdy_lhs = vdz(z)*np.gradient(vdy,z) vdy_rhs =-0.5*vdx - (vdy - vgy)/stokes if viscosity_pert == False: alpha = 0.0 vgx_lhs = -(alpha/rhog(z))*np.gradient(rhog(z)*dvgx,z) vgx_rhs = 2.0*vgy + 2.0*eta_hat - (eps2f/stokes)*(vgx - vdx) vgy_lhs = -(alpha/rhog(z))*np.gradient(rhog(z)*dvgy,z) vgy_rhs = -0.5*vgx - (eps2f/stokes)*(vgy - vdy)
d2Ugx = np.gradient(dUgx, z) d2Ugy = np.gradient(dUgy, z) d2Ugz = np.gradient(dUgz, z) dUdx = np.gradient(Udx, z) dUdy = np.gradient(Udy, z) dUdz = np.gradient(Udz, z) energy2f_tot = eps2f*(np.abs(Udx)**2 + 4.0*np.abs(Udy)**2 + np.abs(Udz)**2) energy2f_tot+= (np.abs(Ugx)**2 + 4.0*np.abs(Ugy)**2 + np.abs(Ugz)**2) #energy2f_tot/= (1.0 + eps2f) energy2f_A =-eps2f*np.real(Udz*np.conj(dvdx*Udx + 4.0*dvdy*Udy + dvdz(z)*Udz)) energy2f_A +=-np.real(Ugz*np.conj(dvgx*Ugx + 4.0*dvgy*Ugy)) energy2f_A2 = -eps2f*np.real(Udz*np.conj(4.0*dvdy*Udy)) - np.real(Ugz*np.conj(4.0*dvgy*Ugy)) energy2f_B =-eps2f*vdz(z)*np.real(dUdx*np.conj(Udx) + 4.0*dUdy*np.conj(Udy) + dUdz*np.conj(Udz)) energy2f_C = kx*np.imag(W*np.conj(Ugx)) - np.real(dW*np.conj(Ugz)) energy2f_D = (vgx - vdx)*np.real(Q*np.conj(Ugx)) + 4.0*(vgy - vdy)*np.real(Q*np.conj(Ugy)) energy2f_D += np.abs(Ugx - Udx)**2 + 4.0*np.abs(Ugy - Udy)**2 + np.abs(Ugz - Udz)**2 energy2f_D *= -eps2f/stokes energy2f_E = (eps2f/stokes)*vdz(z)*np.real(Q*np.conj(Ugz))#buoyancy in 2fluid if viscosity_pert == True: dFx = d2Ugx - (4.0/3.0)*kx*kx*Ugx + (1.0/3.0)*1j*kx*dUgz + dln_rhog(z)*(dUgx + 1j*kx*Ugz) dFx-= W*(d2vgx + dln_rhog(z)*dvgx) dFx*= alpha dFy = d2Ugy - kx*kx*Ugy + dln_rhog(z)*dUgy dFy-= W*(d2vgy + dln_rhog(z)*dvgy) dFy*= alpha
d2Ugx = np.gradient(dUgx, z) d2Ugy = np.gradient(dUgy, z) d2Ugz = np.gradient(dUgz, z) dUdx = np.gradient(Udx, z) dUdy = np.gradient(Udy, z) dUdz = np.gradient(Udz, z) energy2f_tot = eps2f * (np.abs(Udx)**2 + 4.0 * np.abs(Udy)**2 + np.abs(Udz)**2) energy2f_tot += (np.abs(Ugx)**2 + 4.0 * np.abs(Ugy)**2 + np.abs(Ugz)**2) energy2f_A = -eps2f * np.real( Udz * np.conj(dvdx * Udx + 4.0 * dvdy * Udy + dvdz(z) * Udz)) energy2f_A += -np.real(Ugz * np.conj(dvgx * Ugx + 4.0 * dvgy * Ugy)) energy2f_A2 = -eps2f * np.real(Udz * np.conj(4.0 * dvdy * Udy)) - np.real( Ugz * np.conj(4.0 * dvgy * Ugy)) energy2f_B = -eps2f * vdz(z) * np.real(dUdx * np.conj(Udx) + 4.0 * dUdy * np.conj(Udy) + dUdz * np.conj(Udz)) energy2f_C = kx * np.imag(W * np.conj(Ugx)) - np.real(dW * np.conj(Ugz)) energy2f_D = (vgx - vdx) * np.real(Q * np.conj(Ugx)) + 4.0 * ( vgy - vdy) * np.real(Q * np.conj(Ugy)) - vdz(z) * np.real(Q * np.conj(Ugz)) energy2f_D += np.abs(Ugx - Udx)**2 + 4.0 * np.abs(Ugy - Udy)**2 + np.abs(Ugz - Udz)**2 energy2f_D *= -eps2f / stokes dFx = d2Ugx - (4.0 / 3.0) * kx * kx * Ugx + ( 1.0 / 3.0) * 1j * kx * dUgz + dln_rhog(z) * (dUgx + 1j * kx * Ugz) dFx -= W * (d2vgx + dln_rhog(z) * dvgx) dFx *= alpha dFy = d2Ugy - kx * kx * Ugy + dln_rhog(z) * dUgy