Fortran Abaqus 动载荷-DLAOD相关使用

前述:

有限元模型中,当载荷比较复杂时,难以通过ABAQUS/CAE界面直接进行设置,这时候就需要使用DLOAD子程序。

 一、环境准备

使用Abaqus时,需要将abaqus和Fortran关联才能用,其关联过程很麻烦。我也是不断的试错,最终找到比较好的解决方案Abaqus2022+VS2019+oneAPI2023,以下是关联的过程:··

Win10/11配置ABAQUS2021+VS2019+oneAPI2022编译环境 - 知乎视频教程2023.03.20更新:删除了视频链接。因为文章已经经过了多轮更新,解决了作者在不同主机上遇到的不同问题,但视频只在第一次安装的时候录制过,并没有提及后面遇到的一些奇奇怪怪的Bug。因此,推荐根据本文…https://zhuanlan.zhihu.com/p/448013915

二、Abaqus在线文档

https://abaqus-docs.mit.edu/2017/English/DSSIMULIA_Established.htmhttps://abaqus-docs.mit.edu/2017/English/DSSIMULIA_Established.htm点击:Abaqus->User Subroutines->Abaqus/Standard User Subroutines->DLOAD

      SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
     1 COORDS,JLTYP,SNAME)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION TIME(2), COORDS (3)
      CHARACTER*80 SNAME

      user coding to define F


      RETURN
      END

这是Abaqus提供的接口,值得注意的是:Fortran有严格的缩进要求,所以在编程的时候一定要注意。上图的地方就是我在第一次运行的时候一直报错!

!这里有一个debug的操作就是,abaqus每次在提交作业以后会生成xxx.log文件,查看该文件里面有报错的信息。

接上述,在VS2019中这样对齐(好像编译器不同要求不同,读者自己注意!!!)

三、编程

         参数介绍:这里仅介绍几个常用的参数,其他的读者自行到上面官方手册查阅

TIME(1):Step当前的时间的值

TIME(2):总时间的当前值。(注:只有一个Step时,TIME(1)=TIME(2))???

F:分布荷载的大小。单位为FL−2表示表面载荷,FL−3表示车身力。

下面对函数体进行编程

      
      SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,
     1 NPT,LAYER,KSPT,COORDS,JLTYP,SNAME) 
C
      INCLUDE 'ABA_PARAM.INC'
C
      real x,y,v,s                //定义坐标值和速度与位移
      DIMENSION TIME(2), COORDS(3)
      CHARACTER*80 SNAME
      v=10
     
      x = COORDS(1)        //COORDS(1)=x的坐标
      y = COORDS(2)        //COORDS(2)=y的坐标
      s=v*TIME(1)                //计算位移
      
      if(x>=3 .AND. x<=7) then
      if(y>s-0.5 .AND. y<=s) then
          F=30
      else
          F=0
      endif
      else
      F=0
      endif
      return
      end

注:请不要直接复制粘贴!!!

如下图:加载子程序

 等待运行结束:

欢迎指正

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼爱码士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值