len = uz2bar_avg.shape[0] for i in range(len): uxbar_avg[i] = mpi_comm.allreduce(uxbar_avg[i]) uybar_avg[i] = mpi_comm.allreduce(uybar_avg[i]) uzbar_avg[i] = mpi_comm.allreduce(uzbar_avg[i]) ux2bar_avg[i] = mpi_comm.allreduce(ux2bar_avg[i]) uy2bar_avg[i] = mpi_comm.allreduce(uy2bar_avg[i]) uz2bar_avg[i] = mpi_comm.allreduce(uz2bar_avg[i]) nb = chunk_bounds if mpi_rank < (mpi_size - 1): nb[-1] = nb[-1] - 1 gradux = sens.uBarGrad(0,n_chunk,nb,T,uxbar_avg,pde.zeta) graduy = sens.uBarGrad(1,n_chunk,nb,T,uybar_avg,pde.zeta) graduz = sens.uBarGrad(2,n_chunk,nb,T,uzbar_avg,pde.zeta) gradux2 = sens.u2BarGrad(0,n_chunk,nb,T,ux2bar_avg,pde.zeta) graduy2 = sens.u2BarGrad(1,n_chunk,nb,T,uy2bar_avg,pde.zeta) graduz2 = sens.u2BarGrad(2,n_chunk,nb,T,uz2bar_avg,pde.zeta) for i in range(len): gradux[i] = mpi_comm.allreduce(gradux[i]) graduy[i] = mpi_comm.allreduce(graduy[i]) graduz[i] = mpi_comm.allreduce(graduz[i]) gradux2[i] = mpi_comm.allreduce(gradux2[i]) graduy2[i] = mpi_comm.allreduce(graduy2[i]) graduz2[i] = mpi_comm.allreduce(graduz2[i]) if mpi_rank == 0: y,w = channel.quad()
import sensitivities as sens dirc = 0 if mpi_rank == (mpi_size-1): uxbar_avg = sens.velAvg(dirc,0,n_steps,T) else: uxbar_avg = sens.velAvg(dirc,0,n_steps-1,T) len = uxbar_avg.shape[0] for i in range(len): uxbar_avg[i] = mpi_comm.allreduce(uxbar_avg[i]) nb = chunk_bounds grad = sens.uBarGrad(dirc,n_chunk,nb,T,uxbar_avg,pde.zeta) for i in range(len): grad[i] = mpi_comm.allreduce(grad[i]) if mpi_rank == 0: y,w = channel.quad() figure() plot(uxbar_avg,y) figure() plot(grad,y) # save data filename = file_address + results_dir + 'grad_profile.npy' save(filename,grad) # v and w plots