首页/文章/ 详情

Itasca软件判别塑性状态的算法改进

8月前浏览2579

1. 引言

针对【3DEC统计剪切和拉伸接触的数量】塑性状态指示器的判别算法,可以作两点改进:一个是使用FISH内置的位函数math.and,另一个是发展一个通用判别算法。


2. math.and函数

当进行位运算时,使用位函数math.and比之前的方法更不容易出错,对于摩尔-库伦模型,基本的位值有4个:

使用位函数的示例如下:

















fish define getState( state )  if ( state == 0 ) then    io.out('never yielded')  end_if  if ( math.and( 1, state ) == 1 ) then    io.out('shear-n')  end_if  if ( math.and( 2, state ) == 2 ) then    io.out('tension-n')  end_if  if ( math.and( 4, state ) == 4 ) then    io.out('shear-p')  end_if  if ( math.and( 8, state ) == 8 ) then    io.out('tension-p')  end_ifend


3. 通用算法

根据基本的4种状态,进行组合,共可以获得14种相对有效的组合





state = ['slip-n', 'tension-n', 'slip-p', 'tension-p']s_1 = list(itertools.combinations(state, 1))s_2 = list(itertools.combinations(state, 2))s_3 = list(itertools.combinations(state, 3))

['slip-n']

['tension-n']
['slip-p']
['tension-p']
['slip-n', 'tension-n']
['slip-n', 'slip-p']
['slip-n', 'tension-p']
['tension-n', 'slip-p']
['tension-n', 'tension-p']
['slip-p', 'tension-p']
['slip-n', 'tension-n', 'slip-p']
['slip-n', 'tension-n', 'tension-p']
['slip-n', 'slip-p', 'tension-p']
['tension-n', 'slip-p', 'tension-p']

这样作的优点是让代码自动统计出所有可能的状态的数量,不需要对每个项目改动代码。

来源:计算岩土力学
通用3DEC
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-01-14
最近编辑:8月前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 138粉丝 989文章 1776课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈