离散元 python_刚开始学习离散元软件Yade,有什么建议?

用Yade-DEM 做过博士期间的部分工作,也是从毫无所知到算是入门,分享一点我的学习过程,为那些刚接触Yade的同学提供些许参考,希望对大家有帮助。

0. Yade 简介

Yade 是一个用于离散元分析的开源平台,是法国Lab 3SR-Grenoble 课题组发展的。Authors and contributors​yade-dem.org

相比于用其他离散元商业软件如PFC,Yade是开源(免费)的,但免费不代表Yade性能不好,恰恰,Yade很强悍,也是这群contributors一直用心在开发和维护着。

1. Yade 安装简介

1.1 不需要对Linux有顾虑

Yade 是基于Linux系统运行,刚开始知道这个时,担心我对Linux的一无所知会影响Yade的学习和使用,但使用Yade到现在,还没有发现需要很熟练的Linux知识,简单的安装软件,打开软件命令就够了,其余可以像在Windows系统中一样。希望这个能打消部分同学对Linux这块的顾虑。大兄弟,没问题的!

1.2 Linux系统安装 (双系统安装)

我安装的是Linux系统是Ubuntu,以下内容只针对于Ubuntu,其他的我不懂不敢乱说。

如果只是想体验一下Ubuntu以及Yade,可以先在Windows系统中安装Ubuntu虚拟系统,一般用Vmware;但如果想用Yade进行有效率的计算,还是建议安装一个独立的Ubuntu系统:首先直接去Ubuntu官网上下载安装文件,然后用大家推荐的Rufus软件制作一个Ubuntu安装启

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个模拟单轴压缩的yade程序: ``` python # -*- coding: utf-8 -*- from yade import pack, utils, plot from yade import ymport, export from numpy import * # 定义材料参数 Young = 1e7 Poisson = 0.2 frictionAngle = radians(30) cohesion = 1e4 # 定义模拟参数 dt = 1e-5 endTime = 0.002 tolerance = 1e-4 gravity = (0, 0, -9.81) # 创建颗粒 sp = pack.SpherePack() sp.makeCloud((-0.05, -0.05, 0), (0.05, 0.05, 0), 0.01, periodic=False) sp.toSimulation() # 模拟设置 O.dt = dt O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb()]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom6D()], [Ip2_FrictMat_FrictMat_FrictPhys()], [ Law2_ScGeom_FrictPhys( young=Young, poisson=Poisson, frictionAngle=frictionAngle, cohesion=cohesion, ) ], ), PyRunner(command='addWall()', iterPeriod=1), PyRunner(command='applyLoad()', iterPeriod=1), NewtonIntegrator(damping=0.4), TranslationEngine(), Gravity(gravity), ] # 添加墙体 def addWall(): walls = O.bodies.append( utils.wall( O.interactionDetection.boundingBox(), thickness=0.001, wallMask=15, ) ) for w in walls: w.state.blockedDOFs = 'xyzXYZ' # 加载应力 def applyLoad(): for b in O.bodies: if b.state.pos[2] < -0.0001: b.state.vel[2] = -1e-5 O.pause() # 运行模拟 while O.time < endTime: O.run(1) plot.saveDataTxt('compress_data.txt', vars=['O.totalStrain[2]', 'O.totalStress[2]']) ``` 这个程序使用了Yade库,首先定义了材料参数和模拟参数。然后创建了一个球形颗粒堆,并设置了模拟引擎和墙体。在每次迭代中,程序会检测是否需要加载应力并运行模拟,最后将压缩数据写入文本文件中。 注意,这个程序只是一个简单的示例,可能需要根据具体需求进行一些修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值