14 changed files with 841 additions and 353 deletions
@ -0,0 +1,26 @@ |
|||
from .base_options import BaseOptions |
|||
|
|||
|
|||
class TopoptOption(BaseOptions): |
|||
"""This class includes test options. |
|||
|
|||
It also includes shared options defined in BaseOptions. |
|||
""" |
|||
|
|||
def initialize(self, parser): |
|||
parser = BaseOptions.initialize(self, parser) # define shared options |
|||
parser.add_argument('--phase', type=str, default='topopt', help='train, val, test, etc') |
|||
parser.add_argument('--pretrained_model_path', type=str, default='./checkpoints/ANN_mod1_231224-222338/ANN_mod1_opt.pt', help='pretrained model file load path') |
|||
parser.add_argument('--mod_idx', type=str, default='mod1', help='mod_idx for identify save path') |
|||
|
|||
parser.add_argument('--nelx_to', type=int, default=180, help='num of elements on x-axis') |
|||
parser.add_argument('--nely_to', type=int, default=60, help='num of elements on y-axis') |
|||
parser.add_argument('--ms_ratio_to', type=int, default=5, help='multiscale ratio') |
|||
parser.add_argument('--volfrac', type=float, default=0.4, help='volfrac') |
|||
parser.add_argument('--rmin', type=float, default=5.4, help='rmin') |
|||
parser.add_argument('--penal', type=float, default=3.0, help='penal') |
|||
parser.add_argument('--ft', type=int, default=1, help='ft') |
|||
|
|||
|
|||
self.isTrain = False |
|||
return parser |
@ -0,0 +1,28 @@ |
|||
import numpy as np |
|||
|
|||
def Ms_u_reshape(u_data, coarse_nelx, coarse_nely, m): |
|||
nelx=coarse_nelx*m |
|||
nely=coarse_nely*m |
|||
|
|||
u_data = u_data.reshape(coarse_nelx,coarse_nely,m+1,m+1,2) |
|||
u_data = u_data.swapaxes(1,2).reshape(coarse_nelx*(m+1), coarse_nely*(m+1), 2) |
|||
|
|||
idx_x=np.arange(coarse_nelx*(m+1))[::m+1] |
|||
idx_x=np.delete(idx_x,0) |
|||
idx_x=np.delete(np.arange(coarse_nelx*(m+1)),idx_x) |
|||
idx_y=np.arange(coarse_nely*(m+1))[::m+1] |
|||
idx_y=np.delete(idx_y,0) |
|||
idx_y=np.delete(np.arange(coarse_nely*(m+1)),idx_y) |
|||
|
|||
return u_data[idx_x.reshape(nelx+1,1),idx_y.reshape(1,nely+1)] |
|||
|
|||
|
|||
if __name__=='__main__': |
|||
pred=np.load('results/pred.npy') |
|||
u=np.load('datasets/train/180_60/u/mod2.npy') |
|||
|
|||
print(u.shape) |
|||
print(pred.shape) |
|||
|
|||
recv_u = Ms_u_reshape(pred, 36, 12, 5) |
|||
print(recv_u-u.reshape(181,61,2)) |
@ -0,0 +1,35 @@ |
|||
from mpl_toolkits.mplot3d import Axes3D |
|||
import matplotlib.pyplot as plt |
|||
import numpy as np |
|||
|
|||
def surf_plot(dp,ny,nx,save_path,UorV='sqrt',non_dp=False): |
|||
fig = plt.figure() |
|||
ax = fig.add_subplot(projection='3d') |
|||
|
|||
# Make data |
|||
# 生成网格数据 |
|||
X, Y = np.meshgrid(np.arange(nx), np.arange(ny)) |
|||
|
|||
if non_dp: |
|||
Z = Z_x = Z_y = dp.reshape(ny,nx) |
|||
else: |
|||
Z = dp.reshape(ny,nx,2) |
|||
Z_x = Z[:,:,0].reshape(ny,nx) |
|||
Z_y = Z[:,:,1].reshape(ny,nx) |
|||
|
|||
if UorV == 'u': |
|||
ax.plot_surface(X, Y, Z_x, rstride = 1, cstride = 1, cmap='rainbow') |
|||
elif UorV == 'v': |
|||
ax.plot_surface(X, Y, Z_y, rstride = 1, cstride = 1, cmap='rainbow') |
|||
else: |
|||
ax.plot_surface(X, Y, Z_x*Z_x+Z_y*Z_y, rstride = 1, cstride = 1, cmap='rainbow') |
|||
|
|||
plt.savefig(save_path) |
|||
plt.show() |
|||
|
|||
|
|||
if __name__=='__main__': |
|||
print('nothing') |
|||
# surf_plot(global_displace,nely+1,nelx+1,'u') |
|||
# surf_plot(global_displace,nely+1,nelx+1,'v') |
|||
# surf_plot(global_displace,nely+1,nelx+1,'sqrt') |
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue