topy库的安装(拓扑优化软件)

本人的py27文件夹放到了网盘,可以直接下载下来然后直接创建环境变量
链接:https://pan.baidu.com/s/13aj58_VDdYxyRxuwGxRUoA
提取码:k3hs
这里直接根据github的提示来安装添加链接描述
在这里插入图片描述

1:安装python2.7

这里本人使用的是anaconda,在windows安装好anaconda3.9以后,本人创建了一个虚拟环境用于安装python2.7,步骤如下
1a:打开anaconda prompt(或者同时按win+R,在搜索中输入cmd)
1b:输入conda create -n py27 python=2.7,然后回车,直到结束
这样就创建好了虚拟环境,接下来只需要在anaconda prompt中输入
conda activate py27进入虚拟环境即可

2:安装numpy+mkl

这个库需要到官网上添加链接描述先下载whl文件,上面有很多numpy+mkl,需要选择适当的版本才能用
2a:使用管理员身份点击anaconda prompt,然后
conda activate py27进入虚拟环境
2b:输入pip debug --verbose
在这里插入图片描述
观察到了自己的anaconda匹配的whl版本,对于64位的电脑,只能下载画圈的这个whl
在这里插入图片描述
2c:下载完whl以后,把whl文件放到对应的环境变量文件夹里面,比如我的是
C:\Users\anaconda3\envs\py27
2d:然后在anaconda prompt里面输入cd C:\Users\anaconda3\envs\py27进入该文件夹,
2e:输入 pip install numpy-1.16.6+mkl-cp27-cp27m-win_amd64.whl

在这里插入图片描述

3:安装pysparse

在官网添加链接描述上下载
在这里插入图片描述
和2安装numpy+mkl一样,把whl文件也放在py27里面,然后使用命令
pip install pysparse-1.3-cp27-none-win_amd64.whl
在这里插入图片描述
4:用pip install 分别安装matplotlib,sympy,pyvtk(特别注意,刚刚安装2,3的时候使用管理员身份,而且使用了cd …\py27,此时如果直接使用pip install XX会失败)
这里需要关闭anaconda prompt,重新打开anaconda prompt,激活conda activate py27,
此时使用pip install XX才不会报错
5:从github上添加链接描述下载code得到topy-master压缩包
在这里插入图片描述

解压以后,把文件夹放到刚刚的py27文件里面,修改文件夹名字为topy,
使用命令cd C:\Users\anaconda3\envs\py27\topy,然后键入命令
python setup.py install
按道理应该就安装好了,但是本人经过上述步骤,使用import topy的时候报错,说numpy._import.tools不存在。
经过调试,本人在github上找到了一个库添加链接描述,将这个numpy库下载下来成为压缩包,解压以后修改名字为numpy文件夹,然后把Numpy文件夹放到文件夹\anaconda3\envs\py27\Lib\site-packages里面代替原来的numpy文件夹。然后重新
conda activate py27,此时import topy就成功了
在这里插入图片描述
注意:如果跟着上面步骤还是报错,比如说报错DLL load failed,那么说明环境变量没有配置好,需要自己在环境变量那里path增加路径三行

在这里插入图片描述
然后重新启动py27即可

基础代码

经过上述安装,topy已经安装成功,下面我们用vscode来运行一个基础代码,

import topy

config = {
     'DOF_PN': 2,
     'ELEM_K': 'Q4',
     'ETA': '0.5',
     'FILT_RAD': 1.5,
     'FXTR_NODE_X': range(1, 22),
     'FXTR_NODE_Y': 1281,
     'LOAD_NODE_Y': 1,
     'LOAD_VALU_Y': -1,
     'NUM_ELEM_X': 60,
     'NUM_ELEM_Y': 20,
     'NUM_ELEM_Z': 0,
     'NUM_ITER': 4,
     'PROB_NAME': 'beam_2d_reci',
     'PROB_TYPE': 'comp',
     'P_FAC': 3.0,
     'VOL_FRAC': 0.5
}
t = topy.Topology(config)
t.set_top_params()
topy.optimise(t)
print(t)

在VScode上写入这段代码,然后我们需要用py27来运行,这里VScode默认用的是base环境(也就是python3.9),因此我们需要切换。
同时摁住Ctrl+Shift+P,然后会跳出一条输入框,输入>Python:Select Interpreter,回车。就可以根据需要切换虚拟环境了,这里参考别人的博客添加链接描述
在这里插入图片描述
运行结果如下:
在这里插入图片描述

可视化

这里注意,如果仅仅使用VScode无法得到可视化的结果,需要借助于anaconda Prompt,打开anaconda Prompt(然后把这个平台当成linux终端),激活环境py27,然后进入代码所在的文件夹,比如我的是:
cd \topy\soft
此时运行上述代码
python test.py
然后会发现在文件夹soft下面生成了一个子文件夹,里面放了所有迭代过程的图片
在这里插入图片描述
有了这些图片以后,我们需要借助于matplotlib库把图片转换成gif,网上有很多教程,这里本人写了一个代码转换gif
在这里插入图片描述

import matplotlib.animation as animation
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1,1,figsize = (10.5,8))
imglist = []

for i in range(1,40):
    ax.set_axis_off()
    if i < 10:
        im = ax.imshow(plt.imread(r'Desktop\OSP\topocode\softtopy\iterations\beam_2d_reci_00{}.png'.format(i)), animated = True)
    elif i >= 10 and i < 100:
        im = ax.imshow(plt.imread(r'C:\Users\2001213226\Desktop\OSP\topocode\softtopy\iterations\beam_2d_reci_0{}.png'.format(i)), animated = True)
    else:
        im = ax.imshow(plt.imread(r'Desktop\OSP\topocode\softtopy\iterations\beam_2d_reci_{}.png'.format(i)), animated = True)
    imglist.append([im])

ani = animation.ArtistAnimation(fig, imglist, interval=80)#interval时间间隔 单位毫秒
ani.save(r'Desktop\OSP\topocode\softtopy\iterations\beam.gif',dpi = 800)
plt.show()
print('ok')

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Galerkin码农选手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值