Fortran Coder

标题: abaqus里面如何通过Fortran编译周期性的分段函数? [打印本页]

作者: you99    时间: 2020-8-22 16:21
标题: abaqus里面如何通过Fortran编译周期性的分段函数?
本帖最后由 you99 于 2020-8-24 16:24 编辑


我想定义一个图中那种的载荷函数,需要循环的周期很大,abaqus里面自带的amplitude功能实现不了,想用vuamp子程序定义这个函数,如果只是个普通的分段函数的话我直接就用if then... else...语句了但这个是周期性的,不知道该怎么实现,恳请大佬指点一二

附上abaqus中的子程序    vuamp02.for (1.59 KB, 下载次数: 7)
作者: 风平老涡    时间: 2020-8-23 04:51
标题: RE: abaqus里面如何通过Fortran编译周期性的分段函数?
本帖最后由 风平老涡 于 2020-8-22 15:59 编辑

[Fortran] 纯文本查看 复制代码
real function p(t, t1, t2, p0)
implicit none
real, intent(in) :: t, t1, t2, p0
real :: r

r = mod(t, t1 + t2)
if (r <= t1 ) then
   p = p0
else
   p = 0
end if
return
end function p

作者: you99    时间: 2020-8-24 16:32
风平老涡 发表于 2020-8-23 04:51
[mw_shl_code=fortran,true]real function p(t, t1, t2, p0)
implicit none
real, intent(in) :: t, t1, t2 ...

感谢回复,我从网上查了一下说您这个属于自定义函数的用法,而我这个是从abaqus仿真软件中定义一个pressure,再通过子程序定义这个pressure的幅值,所以在编写的时候还是稍微有点差别,我按照您这个简单又编写了一遍,在附件里面有,可以帮忙看一下我编写的对吗?
作者: 风平老涡    时间: 2020-8-24 22:13
中心思想就是把任意时间 t 转换成(T1+T2)的余数,然后根据余数判断P值。
作者: you99    时间: 2020-8-25 09:55
风平老涡 发表于 2020-8-24 22:13
中心思想就是把任意时间 t 转换成(T1+T2)的余数,然后根据余数判断P值。

嗯嗯,多谢了




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2