Logo 折叠
全网首发仿真工程师项目实训
下载app
返回旧版
首页 成长助手 小邻学院 社区 发现
职业认证 企业服务 行业会议

登录解锁更多功能

还没有账号?立即注册

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

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

浏览: 2803
小白计划采用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

推荐阅读

COMSOL中实现煤层瓦斯运移系列课程

COMSOL中实现煤层瓦斯运移系列课程

康康学长 康康学长
¥199
0#块箱梁托架法施工结构模拟

0#块箱梁托架法施工结构模拟

yudachuan1105 yudachuan1105
¥200
ABAQUS钢管混凝土柱温度场及耐火性能分析(未完)

ABAQUS钢管混凝土柱温度场及耐火性能分析(未完)

地下结构设计
¥40
前沿技术!大数据分析及人工智能在优化软件中的应用

前沿技术!大数据分析及人工智能在优化软件中的应用

IDAJ中国 IDAJ中国
¥9.99
新一代智能头灯的动态设计评估与仿真

新一代智能头灯的动态设计评估与仿真

Ansys中国 Ansys中国
免费
UG培训第九课:自由曲面构造法

UG培训第九课:自由曲面构造法

luffy8610 luffy8610
¥20
应用ANSYS瞬态动力学法模拟啮合齿轮的高速转动

应用ANSYS瞬态动力学法模拟啮合齿轮的高速转动

夏日星空 夏日星空
¥35
一线科技工作者接受仿真咨询服务的全过程经验分享

一线科技工作者接受仿真咨询服务的全过程经验分享

技术邻直播 技术邻直播
免费
混凝土材性试块拉压数值模拟(ABAQUS通法建模初级案例3)

混凝土材性试块拉压数值模拟(ABAQUS通法建模初级案例3)

大平-结构工程 大平-结构工程
¥299
汽车仪表模具模流分析的实战讲解

汽车仪表模具模流分析的实战讲解

北卡 北卡
免费
UG有限元基础教程

UG有限元基础教程

moonshine🤓 moonshine🤓
免费
ABAQUS桁架结构强度分析

ABAQUS桁架结构强度分析

wj_2704 wj_2704
¥500
ADAS功能软件基础介绍

ADAS功能软件基础介绍

Alex王 Alex王
免费
abaqus lamb波传播分析

abaqus lamb波传播分析

abaquser abaquser
¥25
abaqus模拟桩(三维)全过程

abaqus模拟桩(三维)全过程

红日当空q3120210076 红日当空q3120210076
¥62
solidworks 2016基础操作入门到精通

solidworks 2016基础操作入门到精通

新征程学院 新征程学院
免费
TurboTides 2024R2全新版本发布会--智能算法驱动的全自动优化透平机械集成设计平台

TurboTides 2024R2全新版本发布会--智能算法驱动的全自动优化透平机械集成设计平台

TurboTides TurboTides
免费
场景仿真加速智能网联开发测试进程

场景仿真加速智能网联开发测试进程

海克斯康设计与仿真 海克斯康设计与仿真
免费
ANSYS speos汽车信号灯案例实操教程

ANSYS speos汽车信号灯案例实操教程

IDAJ中国 IDAJ中国
¥9.9
ANSYS SI/PI/EMI&TI 2019 R3 新功能介绍

ANSYS SI/PI/EMI&TI 2019 R3 新功能介绍

Ansys中国 Ansys中国
免费