Abaqus子程序之UFIELD

0.前言

今天要介绍的子程序是ufield,主要是用来定义一些我们希望在求解过程中使用或者需要实时在分析过程中监测某个变量,这个时候就可以考虑到这个子程序,它和usdfld有相似之处,后续我介绍这个子程序的时候再说下它们之间的区别与用法。

1.子程序 UFIELD简介

  • 允许您在模型的节点处规定预定义的场变量——可以单独更新节点处的预定义场变量,或者可以同时更新节点处的多个场变量;

  • l每当出现用户子程序定义的场变量时调用;

  • l忽略直接指定的任何场变量的值;

  • l可用于修改从结果文件中读取的场变量值;

  • l可以与用户子程序 USDFLD 结合使用,这样可以修改从 UFIELD 传入并插值到材料点的场变量(这种更改是材料点值的变化,节点场变量值不受影响)。

2.软件界面设置

  • 适用求解器:Abaqus/Standard

  • 具体调用方法见下图(注意,initial分析步用不了)

  • 后处理看想看到定义的场变量云图,要勾选FV

3.更新场变量

提供了两种不同的方法来更新场变量。

单独更新变量

默认情况下,在用户子程序 UFIELD 中一次只能更新一个场变量。在这种情况下,每当规定的场变量定义中列出的节点需要场变量的当前值时,将调用用户子例程。该方法只能用于场变量相互独立的情况。

同步更新变量

对于场变量相互依赖的情况,可以在用户子程序 UFIELD 中同时更新一个点上的多个(可能是所有)场变量。在这种情况下,必须指定在一个点上同时更新的场变量的数量,并且每次需要当前场变量值时都会调用用户子程序。

4.用户子程序接口

​ SUBROUTINE UFIELD(FIELD,KFIELD,NSECPT,KSTEP,KINC,TIME,NODE,

1 COORDS,TEMP,DTEMP,NFIELD)

C INCLUDE 'ABA_PARAM.INC'

C DIMENSION FIELD(NSECPT,NFIELD), TIME(2), COORDS(3), 1 TEMP(NSECPT), DTEMP(NSECPT)

C user coding to define FIELD 
RETURN 
END

5.变量说明

要定义的变量

FIELD(NSECPT,NFIELD)

节点号 NODE 处的预定义场变量值数组。当一次只更新一个场变量时,只需要返回指定场变量的值(见下面的 KFIELD)。在这种情况下,NFIELD 被传递到值为 1 的用户子例程 UFIELD,因此 FIELD 的尺寸为 FIELD(NSECPT,1)。当同时更新所有场变量时,必须返回该点指定数量的场变量的值。在这种情况下,FIELD 的维度为 FIELD(NSECPT,NFIELD),其中 NFIELD 是指定的场变量数,KFIELD 没有意义。

传递信息的变量

KFIELD 用户指定的场变量号。此变量仅在一次更新单个场变量时才有意义。

NFIELD 用户指定的要更新的场变量号。该变量只有在同时更新多个场变量时才有意义。

NSECPT 模型中任何节点所需的最大截面值数目。当接触模型中的某些非梁或非壳节点仅指定一个场变量时,NSECPT 可以为 2。

KSTEP

分析步号

KINC

增量步号

TIME(1)

分析步时间的当前值。

TIME(2)

当前总时间。

NODE

节点号

COORDS

包含此节点坐标的数组。如果在步骤中考虑了几何非线性,则这些是当前坐标;否则,数组包含节点的原始坐标。

TEMP(NSECPT)

节点的当前温度。如果同时使用用户子程序 UTEMP 和 UFIELD,则用户子程序 UTEMP 在用户子程序 UFIELD 之前处理。

DTEMP(NSECPT)

节点处的温度增量。

6.案例

案例主要是测试验证温度和场变量值是否正确传递到结构,较为简单,主要是可以用来参考学习,公众号回复ufield子程序即可获取。获取更多资料和学习交流欢迎大家关注公众号冬生亦东生,分享旨在本人复习和交流

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Abaqus是一种常用的有限元分析软件,它允许用户根据需要编写子程序来扩展其功能。Abaqus子程序源码是用于实现用户自定义功能的一段编程代码。 Abaqus子程序源码可以使用Fortran或C++编写。用户可以根据分析需求自己编写子程序,然后将其与Abaqus软件集成在一起,以实现特定的分析目标。子程序主要用于修改Abaqus软件的默认行为或添加新的功能。 Abaqus子程序源码的编写需要一定的编程知识和理解Abaqus系统的数据结构和算法。在子程序中,用户可以通过调用Abaqus提供的API函数来访问和修改系统内部的数据。用户可以根据需要添加计算模型、边界条件、材料模型、求解算法等方面的自定义功能。 编写Abaqus子程序源码的基本步骤包括:定义子程序的输入输出参数、编写子程序的主体代码、编译子程序、将子程序Abaqus软件链接并进行测试。 编写好的子程序可以通过Abaqus的用户界面或命令行界面进行调用和使用。用户可以在Abaqus的分析过程中或预处理环节中调用子程序来完成特定的计算任务。 需要指出的是,编写Abaqus子程序源码需要一定的编程能力和对Abaqus软件的深入了解。同时,编写的子程序需要经过充分的测试和验证,以确保其正确性和稳定性,避免对分析结果产生误导。 总之,Abaqus子程序源码是用于扩展Abaqus软件功能的一段编程代码,用户可以根据自己的需求编写子程序,并将其与Abaqus软件集成,以达到特定的研究或分析目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

冬生亦东生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值