顶部banner
Logo 折叠
学习从这里开始
下载app
返回旧版
首页 成长助手 小邻学院 社区 发现
职业认证 企业服务 行业会议

登录解锁更多功能

还没有账号?立即注册

技术邻
技术引领职场价值
电话
0571-86682823
商务合作
service@jishulink.com
  • 全部  > 
  • CAE仿真

UMAT实现混凝土粘弹性徐变变形提问? 100

浏览: 2679
小白计划采用UMAT实现混凝土徐变粘弹性变形计算,其中一部分代码已编好(详见附件),现遇到以下问题:

1.直接运算可以计算,但无法查看结果,提示如下:

The selected Primary Variable is not availablein the current frame for any elements inthe current display group.

2.初步判断问题出现在Taomiu上,这个值在K=1,10循环中从10的-5次方变化到10的5次方,每次循环×10。更改程序直接给定这个值可以计算并显示结果,但是当给定的值小于0.1时,计算非常慢且卡死;给定值大于等于0.1时正常计算并显示结果;直接给定10的-5或-6次方如图1且计算很快(怀疑没算)。
我想知道为什么会出现这种问题?请大家不吝赐教


      SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     1 RPL,DDSDDT,DRPLDE,DRPLDT,
     2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
     3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
     4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME
C
      DIMENSION STRESS(NTENS),STATEV(NSTATV),
     1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
     2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
     3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),
     4 DSTRS(NDI),DSTSA(NTENS),SHRSTRN(NTENS),t(1000),INNCREMENT(1),
     5 nc1(NTENS),DSTSA1(NTENS)

      integer i, j, k
      real(8) :: ZERO, ONE, TWO, THREE, Amiu, Cnv, A0, n, q1, q2, v, 
     1 t0, tk, pivot, Cnf, k0, q4, Smid, S0, DTIME1, k1, DSTRE
      real(8) :: Taomiu
      parameter(ZERO=0.0d0, TWO=2.0d0, ONE=1.0d0, 
     1 THREE=3.0d0, n=1.0d-1, A0=0.0d0)
      real, dimension(ntens) :: dstrainv
      real, dimension(ntens) :: dstrainf
      real, dimension(ntens) :: gamamiu
      real, dimension(ntens,ntens) :: Iddsdde
      real, dimension(ntens,2*ntens) :: aug
      real, dimension(ntens) :: DSTRESS1
      real, dimension(ntens) :: STRESS1

C 调试专用
C      logical :: firstrun = .true.
C      integer tempvar
C      if(firstrun)then
C          write(*,*)"please input an integer;"
C          read(*,*)tempvar
C          firstrun = .false.
C      endif
C      tempvar =1234 !断点

C material properties
      q1 = props(1)     
      v = props(2)      
      q2 = props(3)      
      t0 = props(4)  
      tk = props(5)
      k0 = props(6)
      q4 = props(7)
      S0 = props(8)   
      
C
      if (KINC.EQ.ONE) then
          DTIME1 = ZERO
          do i = 1, ntens
              DSTRESS1(i) = ZERO
              STRESS1(i) = ZERO
          end do
      else
          k1 = ZERO
          DTIME1 = STATEV(k1+1)
          do i = 1, ntens
              k1 = 1
              k1 = k1 + 1
              STRESS1(i) = STATEV(k1)
          end do
          do i = 1, ntens
              k1 = k1 + 1
              DSTRESS1(i) = STATEV(k1)
          end do
      end if
      
C G matrix
      do i = 1, ntens
        do j = 1, ntens
          Iddsdde(i,j) = 0.0d0
        end do
      end do
      do i = 1, ndi
        do j = 1, ndi
          Iddsdde(i,j) = -v
        end do 
        Iddsdde(i,i) = 1.0d0
      end do 
      do i = ndi+1, ntens
        Iddsdde(i,i) = TWO * (ONE + v)
      end do


C viscoelastic, no aging!!!!
      do i = 1, ntens
          dstrainv(i) = 0.0d0
      end do
      Cnv = ZERO
      Cnv1 = ZERO
      Taomiu = 1.0d-6
          do k = 1.0d0, 1.0d1
              Taomiu = Taomiu * 1.0d1
              Amiu = q2 * n * (ONE - n) * ((THREE * Taomiu) ** n) / (ONE
     1 + ((THREE * Taomiu) ** n))
              if (KINC.EQ.ONE) then
                 do i = 1, ntens
                     gamamiu(i) = ZERO    
                 end do
                 do i = 1, ntens
                     dstrainv(i) = dstrainv(i) + (ONE - exp(-dtime / 
     1 Taomiu)) * (Amiu * stress(i) - gamamiu(i))
                 end do
              else
                 do i = 1, ntens
                     gamamiu(i) = Amiu * (ONE - exp(-DTIME1 / Taomiu)) 
     1 * STRESS1(i) + Amiu * (ONE - (ONE - exp(-DTIME1 / 
     2 Taomiu)) / (DTIME1 / Taomiu)) * DSTRESS1(i) + gamamiu(i) * exp
     3 (-DTIME1 / Taomiu)  
                 end do
                 do i = 1, ntens
                     dstrainv(i) = dstrainv(i) + (ONE - exp(-dtime / 
     1 Taomiu)) * (Amiu * stress(i) - gamamiu(i))
                 end do
              end if
              if (KINC.EQ.ONE) then
                  Cnv1 = ZERO
              else
                  Cnv1 = Cnv1 + Amiu * (ONE - (ONE - exp(dtime / 
     1 Taomiu)) / (dtime / Taomiu))
              end if
          end do
          Cnv = Cnv1 + A0

C Dve
      do i = 1, ntens
        do j = 1, ntens
          Iddsdde(i,j) = Iddsdde(i,j) * (Cnv + q1)
        end do
      end do
      
C Inversion of the matrix
      aug(:,1:TWO*ntens) = 0.0d0
      aug(:,1:ntens) = Iddsdde(:,1:ntens)
      aug(:,ntens+1:TWO*ntens) = 0.0d0
      do i = 1, ntens
          aug(i,i+ntens) = 1.0d0
      end do
      do i = 1, ntens
          pivot = aug(i,i)
          do j = 1, 2*ntens
              aug(i,j) = aug(i,j) / pivot
          end do
          do j = 1, ntens
              if (j /= i) then
                  pivot = aug(j,i)
                  do k = 1, 2*ntens
                      aug(j,k) = aug(j,k) - pivot * aug(i,k)
                  end do
              end if
          end do
      end do
      ddsdde(:,1:ntens) = aug(:,ntens+1:TWO*ntens)
      
C STATEV
      k1 = 0
      STATEV(k1+1) = dtime
      do i = 1, ntens
          k1 = 1
          k1 = k1 + 1
          STATEV(k1) = stress(i)
      end do
      DSTRE = 0
      do i = 1, ntens
          k1 = k1 + 1
          do j = 1, ntens
              DSTRE = DSTRE + ddsdde(i,j) * (dstran(j) - 
     1 dstrainv(j))
              STATEV(k1) = DSTRE
          end do
      end do

C Stress increment evaluation
      do i = 1, ntens
          do j = 1, ntens
              stress(i) = stress(i) + ddsdde(i,j) * (dstran(j) - 
     1 dstrainv(j))
          end do 
      end do
C
      return
      end

Job-14.inp

ff1-1.for

i.cae


abaqus运行umat

全部回答 (0)

默认 最新

相似问题

查看全部
  • 壳单元与实体单元 UMAT 有哪些差异? 暂无回答

    我在 Abaqus 中使用壳单元(如 S4R)调用 UMAT 时发现结果与实体单元不同,想确认具体差异。 下面是一个简单的线弹性实体单元umat,如果我想改为用壳单元使用,应该如何修改? 非常感谢大佬解答,解决了可以支付宝发您红包, 我的微信:13635374241 UMAT_1.for SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, 1 RPL

  • 错误#6404:此名称没有类型,必须具有显式类型。??? 暂无回答

    各位大佬请问遇到这种情况怎么解决,而且不论我怎么改,错误都是31个,不增不减。 错误 error #6404: This name does not have a type, and must have an explicit type. [SSTOL] C:\Users\Administrator\Documents\Visual Studio 2015\Projects\D-Paccord\D

  • abaqus与子程序参数不匹配,怎么解决? 3个回答

    Error in job ex12-4-O1: Problem during linking - Abaqus/Standard User Subroutines. This error may be due to a mismatch in the Abaqus user subroutine arguments. These arguments sometimes change from re

推荐阅读

手把手教你ABAQUS耗能钢节点建模与分析

手把手教你ABAQUS耗能钢节点建模与分析

1点 1点
¥169
step by step 教你如何在abaqus中使用实体单元和连接单元建立螺栓连接

step by step 教你如何在abaqus中使用实体单元和连接单元建立螺栓连接

幻想飞翔 幻想飞翔
¥30
2020全英华人汽车工程协会年会Part 2——汽车产品工程研发的数字化未来

2020全英华人汽车工程协会年会Part 2——汽车产品工程研发的数字化未来

陈东陈 陈东陈
免费
测量不确定度的应用实践

测量不确定度的应用实践

HBK测试与测量 HBK测试与测量
免费
无网格划分软件midas MeshFree - 功能培训

无网格划分软件midas MeshFree - 功能培训

MIDAS官方 MIDAS官方
免费
探究实时仿真GPU求解器加速汽车行业设计创新

探究实时仿真GPU求解器加速汽车行业设计创新

Ansys中国 Ansys中国
免费
Fluent中升力和阻力的计算

Fluent中升力和阻力的计算

宁博士CAE团队 宁博士CAE团队
免费
【入门案例02】Abaqus——钢筋混凝土构件的碳纤维布+钢板加固模拟

【入门案例02】Abaqus——钢筋混凝土构件的碳纤维布+钢板加固模拟

臻元咨询
¥30
张量计算课程合集

张量计算课程合集

引垂思汀 引垂思汀
¥50
精品课程A30-考虑初始缺陷的栓焊连接组合节点滞回模拟

精品课程A30-考虑初始缺陷的栓焊连接组合节点滞回模拟

大平-结构工程 大平-结构工程
¥598
vof案例-射流

vof案例-射流

CFD流 CFD流
免费
线控底盘市场趋势分析

线控底盘市场趋势分析

小木匠砍树 小木匠砍树
免费
用EVOLVE对接INSPIRE,加速产品迭代优化

用EVOLVE对接INSPIRE,加速产品迭代优化

咸鱼氮泵 咸鱼氮泵
免费
遗传算法解决(TSP)商旅问题matlab代码超详细解说(适用于新手)

遗传算法解决(TSP)商旅问题matlab代码超详细解说(适用于新手)

活泼可男_matlab教学 活泼可男_matlab教学
¥10
船舶行进过程中的流场分布规律分析

船舶行进过程中的流场分布规律分析

龙樱 龙樱
免费
BOX-3D变宽斜钢箱梁绘图及功能更新演示

BOX-3D变宽斜钢箱梁绘图及功能更新演示

敦樸DUNPU 敦樸DUNPU
免费
abaqus埋地管道受力分析

abaqus埋地管道受力分析

冷月 冷月
¥25
基于iSIGHT+Workbench的开孔平板性能优化

基于iSIGHT+Workbench的开孔平板性能优化

sjktzy sjktzy
¥5
Hyperworks CFD v2022.1前后处理教程

Hyperworks CFD v2022.1前后处理教程

ALTAIR ALTAIR
免费
品索设计-Creo自学练习集讲解(草绘部分)

品索设计-Creo自学练习集讲解(草绘部分)

深圳品索设计Creo培训 深圳品索设计Creo培训
免费