首页/文章/ 详情

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

6月前浏览2466

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
      最近编辑:6月前
      计算岩土力学
      传播岩土工程教育理念、工程分析...
      获赞 134粉丝 956文章 1776课程 0
      点赞
      收藏
      未登录
      还没有评论
      课程
      培训
      服务
      行家
      VIP会员 学习 福利任务 兑换礼品
      下载APP
      联系我们
      帮助与反馈