#dUgz = dUgz_num 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
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_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
dUgx = np.gradient(Ugx, z) dUgy = np.gradient(Ugy, z) 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)