ABAQUS有一个非常大的单元库,含有多种类型单元,可以满足各种复杂的力学分析。相比于写一个完整的有限元求解程序,在一些现有程序的基础上编写用户单元可以大大降低开发成本、缩短开发时间,并且可以充分利用ABAQUS提供的强大的前后处理能力。此外,ABAQUS内置的求解器的效率非常高,求解非线性问题具有很好的收敛性,这也使得用户单元子程序具有非常广的应用前景,是一个很好的助力科研和工程的工具。......
2023-11-03
Fortran语言程序由程序单元(如一个主程序)、模块和外部子程序或程序的集合构成,每个程序必须包含一个主程序,可以包含其他程序单元,如子程序。Fortran语言主程序的语法示例如下:
接下来,以一个简单的Fortran语言程序为例,介绍Fortran语言程序的基本结构。该程序的主要功能是对两个实数进行加法运算,并输出计算结果。完整的程序代码如下:
在上面的Fortran语言程序中,代码后添加了相应的注释,这有助于我们很好地理解程序的逻辑和流程。
在编写Fortran语言代码的过程中,需要特别注意以下几点:
(1)Fortran语言程序都以关键字“program”开始,以关键字“end program”结束,这两句的后面都可以接程序的名称(也可以忽略不写)。
(2)“implicit none”语句要求编译器检查所有变量的声明,使用该语句可以避免编程上的一些低级错误(如变量类型错误)。(www.chuimin.cn)
(3)若某一行代码以感叹号“!”开始的行或者在行的开头有字母C,则表示这一行已被注释,它的所有字符都将被编译器忽略。若某一行代码中有感叹号,则表示在感叹号后面的代码已被注释,将被编译器忽略。
(4)命令“print*”用于在屏幕上显示输出提示语句、结果和数据。
(5)代码行的缩进是保持程序可读性的一个很好的做法。
(6)除了字符串常量外,Fortran语言不区分字母的大写和小写。对此,很多习惯使用其他程序语言的编写者在转而使用Fortran语言编程时会有不适应,导致耗费很多时间用于调试一些低级错误。
有关基于ABAQUS的有限元子程序开发及应用的文章
ABAQUS有一个非常大的单元库,含有多种类型单元,可以满足各种复杂的力学分析。相比于写一个完整的有限元求解程序,在一些现有程序的基础上编写用户单元可以大大降低开发成本、缩短开发时间,并且可以充分利用ABAQUS提供的强大的前后处理能力。此外,ABAQUS内置的求解器的效率非常高,求解非线性问题具有很好的收敛性,这也使得用户单元子程序具有非常广的应用前景,是一个很好的助力科研和工程的工具。......
2023-11-03
用户子程序UELMAT的接口和用户子程序UEL的接口相似,具体如下:与用户子程序UEL不同,用户子程序UELMAT可以直接调用ABAQUS内置的材料模型,这样我们可以在编程时重点考虑在单元层面的实现上,而无须考虑复杂的材料实现。为了在模型中使用用户子程序UELMAT,需要在模型的inp文件中添加接口,以指明哪些单元需要使用用户子程序UELMAT计算其单元刚度矩阵和右手边残差向量。......
2023-11-03
蠕变是固体材料在保持应力不变的条件下,应变随时间延长而增加的现象。由于蠕变,材料在某瞬时的应力状态一般不仅与该瞬时的变形有关,而且与该瞬时以前的变形过程有关[24]。虽然Abaqus/Standard提供了丰富的蠕变本构模型,但Abaqus/Explicit还没有关于蠕变的本构模型。然而,对于一些特定的问题,采用Abaqus/Standard很难求解收敛,此时不得不借助Abaqus/Explicit进行求解,如果其中涉及的材料具有较为明显的蠕变特性,则需要借助VUMAT在Abaqus/Explicit中实现蠕变本构模型[26]。......
2023-11-03
Fortran语言提供了5种内在的数据类型,也可以根据需要来自定义数据类型。此外,在声明整型变量时,还可以指定变量使用的字节数。在Fortran语言中,用两个连续的实数来存储复数的这两部分。......
2023-11-03
相较于Fortran语言,C++语言的一大优势是含有丰富的外部库,可以满足各种计算需求,能大大提高开发子程序的效率。第1章已经简单介绍了使用外部库的好处,并通过一个简单的例子说明了使用外部库可以提高代码的可读性。本节以数值计算库armadillo为例来介绍如何在C++语言中调用外部库。如果没有进行这一步骤,则在运行中会弹出报错消息框并退出,而且弹出的是BLAS库的消息框。不过,在armadillo库中使用一维数组对矩阵进行初始化时是列优先的。......
2023-11-03
用户子程序USDFLD是用于Abaqus/Standard中的场变量定义子程序,其具有以下特性:允许将材料点处的场变量定义为时间函数或输出变量标识符表中列出的任何可用的材料点处的量的函数,但用户定义的输出变量UVARM和UVARMn除外。将在材料定义中包含了用户子定义场变量的单元的所有材料点上被调用。可以与用户子程序UFIELD一起使用,以指定预定义的场变量。用户子程序USDFLD的Fortran程序接口如下:下面分别解释子程序的输入输出参数及其意义,这些参数主要分为以下三类。......
2023-11-03
本节给出混合硬化塑性本构的控制方程,用户子程序要根据这些控制方程来编写。混合硬化塑性本构的控制方程涉及两部分,分别是材料在屈服之前的弹性部分和屈服后的塑性部分。式在Jaumann率下的率形式为将式在共轴旋转框架下进行时间积分,得到增量形式的弹性本构方程:用户子程序中编写代码时依据式进行。如果弹性预测应力超过了屈服应力σY,材料就会发生塑性流动。......
2023-11-03
ABAQUS 是一套功能强大的工程模拟的有限元软件[6~8],其解决问题的范围从相对简单的线性分析到许多复杂的非线性问题。ABAQUS 被广泛地认为是功能最强的有限元软件,可以分析复杂的固体力学结构力学系统,特别是能够驾驭庞大复杂的问题和模拟高度非线性问题。由于ABAQUS 优秀的分析能力和模拟复杂系统的可靠性,其被各国的工业和研究中所广泛采用。ABAQUS 产品在大量的高科技产品研究中都发挥着巨大的作用。ABAQUS 主要分析功能如表2-1 所示。......
2023-06-27
相关推荐