Пример #1
0
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()
Пример #2
0
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