Fortran Coder

查看: 10080|回复: 4
打印 上一主题 下一主题

[子程序] abaqus里面如何通过Fortran编译周期性的分段函数?

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
32 元
贡献
14 点
跳转到指定楼层
楼主
发表于 2020-8-22 16:21:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 you99 于 2020-8-24 16:24 编辑


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

附上abaqus中的子程序    vuamp02.for (1.59 KB, 下载次数: 7)
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

213

帖子

2

主题

0

精华

宗师

F 币
2142 元
贡献
875 点

规矩勋章

沙发
发表于 2020-8-23 04:51:47 | 只看该作者

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

3

帖子

1

主题

0

精华

新人

F 币
32 元
贡献
14 点
板凳
 楼主| 发表于 2020-8-24 16:32:37 | 只看该作者
风平老涡 发表于 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的幅值,所以在编写的时候还是稍微有点差别,我按照您这个简单又编写了一遍,在附件里面有,可以帮忙看一下我编写的对吗?

213

帖子

2

主题

0

精华

宗师

F 币
2142 元
贡献
875 点

规矩勋章

地板
发表于 2020-8-24 22:13:41 | 只看该作者
中心思想就是把任意时间 t 转换成(T1+T2)的余数,然后根据余数判断P值。

3

帖子

1

主题

0

精华

新人

F 币
32 元
贡献
14 点
5#
 楼主| 发表于 2020-8-25 09:55:10 | 只看该作者
风平老涡 发表于 2020-8-24 22:13
中心思想就是把任意时间 t 转换成(T1+T2)的余数,然后根据余数判断P值。

嗯嗯,多谢了
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-23 11:10

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表