当前位置:文档之家› 一起学习UMAT 的一些公式注释

一起学习UMAT 的一些公式注释

一起学习UMAT 的一些公式注释
一起学习UMAT 的一些公式注释

一起学习UMAT的一些公式注释

ZHANG chunyu

herrliubs comments in formulas

知识积累和储备

在进行ABAQUS子程序UMAT的编写前,要弄清楚:ABAQUS调用UMAT子程序流程;要建立的材料模型的本构关系和屈服准则等;UMAT子程序中相关参数、以及矩阵的表达。

主要求解过程:每一个增量步开始,ABAQUS主程序在单元积分点上调用UMAT 子程序,并转入应变增量、时间步长及荷载增量,同时也传入当前已知的状态的应力、应变及其他求解过程相关的变量;UMAT子程序根据本构方程求解应力增量及其他相关的变量,提供Jacobian矩阵给ABAQUS主程序以形成整体刚度矩阵;主程序结合当前荷载增量求解位移增量,继而进行平衡校核;如果不满足指定的误差,ABAQUS将进行迭代直到收敛,然后进行下一增量步的求解。

弹性力学相关知识(基本)

仿真论坛(https://www.doczj.com/doc/407365535.html,/forum.php ... &highlight=UMAT)

ABAQUS二次开发版块这个人帖子结合例子,列出了弹性力学的基本公式。

UMAT变量含义

UMAT中可以得到的量增量步开始时刻的,应力(Stress),应变(Strain), 状态变量(Solution-dependent state variables (SDVs))

增量步开始时刻的,应变增量(Strain increment),转角增量(Rotation increment),变形梯度(Deformation gradient)

时间总值及增量(Total and incremental values of time),温度(Temperature),用户定义场变量

材料常数,材料点的位置,特征单元长度

当前分析步,增量步

必须定义的变量应力,状态变量,材料Jacobian矩阵(本构关系)

可以定义的变量应变能,塑性耗能,蠕变耗能

新建议的时间增量

变量分类

UMAT中可以直接调用(Call ……)的子程序或子函数

SINV(STRESS,SINV1,SINV2,NDI,NSHR)——用于计算应力不变量。其中:SINV1=第一应力不变量;SINV2=第二应力不变量。

SPRINC(S,PS,LSTR,NDI,NSHR)——用于计算主应力或应变值。其中:S=应力或应变张量;PS(I),I=1,2,3, 主应力或应变值;LSTR=标识,1表示S为应力张量,2表示S为应变张量。

SPRIND(S,PS,AN,LSTR,NDI,NSHR)——用于计算主应力或应变的方向。其中:AN(K1,I),I=1,2,3,表示PS(K1)的法向的方向余弦。

ROTSIG(S,R,SPRIME,LSTR,NDI,NSHR)——用于复原已旋转的张量。其中:R=转角矩阵;SPRIME=已旋转的应力或应变张量。XIT——用于停止分析,并关闭所有与分析相关的文件。

Variables Define

STRESS(NTENS)该增量步开始之前的应力向量,在增量步结束之后,必须进行更新。如果指定了初始应力,则该向量在分析开始始将保持初始应力。真实Cauchy 应力。需要定义的变量,在所有分析情况下均适用。

STATEV(NSTATV)求解过程中的状态变量的存贮向量。在该增量步开始时,用来传递状态变量,除非进行了更新(采用USDEFL或UEXPAN)。在增量步结束时,STATEV更新为结束时刻的状态变量值。STATEV的维数(NSTATV)由

*DEPVAR决定。

DDSDDE(NTENS,NTENS) Jacobian矩阵,即本构关系矩阵。?σ/?ε。除非声明采用非对称方程求解,否则均为对称矩阵DDSDDE(i, j)。

S SE、SPD、SCD 弹性应变能、塑性耗能、徐(蠕)变耗能。在该增量步结束时进行更新,并在下一增量步开始时进行传递。这些能量参数对于求解结果不起作用,除非结果采用能量形式输出。

RPL 该增量步结束时,由于材料的力学作工而产生的体积发热量。只用于完全耦合的温度-应力分析

DDSDDT(NTENS)与温度想对应的应力增量的变化量

DRPLDE(NTENS)与应变增量相对应的体积发热量(RPL)的变化量DRPLDT(NTENS)与温度相对应的体积发热量(RPL)的变化量

STRAIN(NTENS)该增量步开始之前的总应变向量。如果考虑了热膨胀效应,那么STRAIN仅为力学应变(即已经在总应变中减去了热膨胀得到的温度应变)。这些应变在输出结果中以“弹性”应变给出。信息传递变量

DSTRAIN(NTENS)应变增量向量。如果考虑了热膨胀应变,则仅表示力学应变增量。

TIME(1)

TIME(2)当前分析步开始时刻的,时间步的值。

当前分析步开始时刻的,总时间的值。

DTIME 该增量步的时间增量

TEMP 当前增量步开始时刻的温度

DTEMP 该增量步的温度增量

PREDEF 在当前增量步开始时刻的,预定义的场变量(基于读入的节点值)的内插值向量。

DPRED 预定义的场变量的增量向量

CMNAME 用户定义的材料名。由于ABAQUS内部的一些给定材料是以“ABQ_”作为材料名,因此应尽量不采用“ABQ_”作为CMNAME的名称。

NDI 该点的直接应力分量的个数

NSHR 该点的工程剪应力分量的个数

NTENS 应力或应变向量的维数,等于NDI +NSHR。

NSTATV 求解过程中的状态变量的个数,与材料类型匹配。

PROPS(NPROPS)用户定义的材料常数

NPROPS 用户定义的材料常数的个数

COORDS 该点的坐标向量。如果在当前分析步中没有考虑几何非线性,COORDS 就等于当前坐标系下的向量。否则,COORDS为最开始的坐标向量信息传递变量DROT(3,3)转角增量矩阵。代表了刚体的基本坐标系中的转角增量(该基本坐标系就是应力、应变向量存储时的坐标系)。用于用户定义子程序中的向量或矢量状态变量的转角处理,而应力及应变向量在UMAT调用之前已经进行了转角处理。在小位移分析中,该矩阵是一个单位矩阵;在大位移分析中,如果该材料点的基本坐标系随着材料坐标系转动(如壳单元或采用了局部转角坐标时),该矩阵亦是一个单位矩阵。

PNEWDT 建议的新时间增量与原时间增量(DTIME)之间的比值大小。该变量允许用户在ABAQUS/Standard中输入自动时间增量的计算法则(如果设置了自动时间增量)。对于ABAQUS/Standard的准静态分析中的自动时间增量(基于标准蠕变率积分

技术),不允许在UMAT中控制。

在每一次调用UMAT前,PNEWDT被设置为一个足够大的值。

如果没有选择自动时间增量方法,大于1.0的PNEWDT值将被忽略,而起作用的仅是当小于1.0的PNEWDT值时。能够更新的变量

CELENT 特征单元长度。信息传递变量

DFGRD0(3,3)该增量步开始时刻的变形梯度向量。

DFGRD1(3,3)该增量步结束时刻的变形梯度向量。如果在分析步中未考虑几何非线性,则该向量为零。

NOEL 单元的个数

NPT 积分点的个数信息传递变量

LAYER 层的个数(用于复合材料的壳单元,及层结构固体单元)

KSPT 当前层的截面点的个数

KSTEP 分析步的个数

KINC 增量步的个数

UMAT程序编写

相对于材料本构关系的推导验证,子程序的编写是相对简单的,在理清了ABAQUS-UMAT变量的含义和材料的本构关系的前提下,再多看几个UAMT例子,就可以试着自己写UMAT了。我的经验是一定要把流程图画出来,根据材料的本构关系的推导公式来写UMAT程序。

程序的验证需要耐心,用简单的模型验证,多看.dat和.msg文件。即使UMAT程序没有问题,也可能出错,这时就要认真看本构推导公式,并和程序中的变量一一对应。

UMAT子程序中最重要也是最难的是材料的本构关系的推导!

1、什么时候用用户定义材料(User-defined material, UMAT)?

很简单,当ABAQUS没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。

2、好学吗?需要哪些基础知识?

先看一下ABAQUS手册(ABAQUS Analysis User's Manual)里的一段话:

Warning: The use of this option generally requires considerable expertise.The user is cautioned that the implementation of any realistic constitutive model requires extensive development and testing. Initial testing on a single element model with prescribed traction loading is strongly recommended.

但这并不意味着非力学专业,或者力学基础知识不很丰富者(就如我本人 )就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,

而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。当然,最基本的一些概念和知识还是要具备的,比如

应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modulus )、泊松比(Poisson’s ratio)、拉美常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。

3、UMAT 的基本任务?

我们知道,有限元计算(增量方法)的基本问题是:

已知第n 步的结果(应力,应变等) n σ ,n ε; 然后给出一个应变增量

1n ε+d , 计算新的应力 1n σ+ 。 UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =?Δσ/?Δε。Δσ是应力增量矩阵(张量或许更合适),Δε是应变增量矩阵。DDSDDE(I,J) 定义了第J 个应变分量的微小变化对第I 个应力分量带来的变化。该矩阵只影响收敛速度,不影响计算结果的准确性(当然,不收敛自然得不到结果)。

4、怎样建立自己的材料模型?

本构方程就是描述材料应力应变(增量)关系的数学公式,不是凭空想象出来的,而是根据实验结果作出的合理归纳。比如对弹性材料,实验发现应力和应变同步线性增长,所以用一个简单的数学公式描述。为了解释弹塑性材料的实验现象,又提出了一些弹塑性模型,并用数学公式表示出来。 对各向同性材料(Isotropic material ),经常采用的办法是先研究材料单向应力-应变规律(如单向拉伸、压缩试验),并用一数学公式加以描述,然后把讲该规律推广到各应力分量。这叫做“泛化“(generalization)。

5、一个完整的例子及解释

下面这个UMAT 取自ABAQUS 手册,是一个用于大变形下的弹塑性材料模型。希望我的注释能帮助初学者理解。需要了解J2理论。

SUBROUTINE

UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT, 1

DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED, 2

CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT, 3

PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KI NC)

STRESS --应力矩阵,在增量步的开始,保存n σ并作为已知量传入UMAT ;在增量步的结束应该保存更新的应力1n σ+; STRAN --当前应变n ε,已知 。 DSTRAN —应变增量1n ε+d ,已知。

STATEV --状态变量矩阵,用来保存用户自己定义的一些变量,如累计塑性应变,粘弹性应变等等。增量步开始时作为已知量传入,增量步结束应该更新;

DDSDDE =。需要更新 DTIME —时间增量dt 。已知。

NDI —直接应力、应变个数,对三维问题、轴对称问题自然是3(11,22,33),平面问题是2(11,22);已知。

NSHR —剪切应力、应变个数,三维问题时3(12,13,23),轴对称问题是1(12);已知。

NTENS =NTENS+ NSHR ,已知。

PROPS 材料常数矩阵,如模量啊,粘度系数啊等等;作为已知量传入,已知。

DROT —对finite strain 问题,应变应该排除旋转部分,该矩阵提供了旋转矩阵,详见下面的解释。已知。

PNEWDT —可用来控制时间步的变化。如果设置为小于1的数,则程序放弃当前计算,并用新的时间增量DTIME X PNEWDT 作为新的时间增量计算;这对时间相关的材料如聚合物等有用;如果设为大余1的数,则下一个增量步加大DTIME 为DTIME X PNEWDT 。可以更新。 其他变量含义可参看手册,暂时用不到。 C

INCLUDE 'ABA_PARAM.INC'

定义了一些参数,变量什么的,不用管 C

CHARACTER*8 CMNAME C

DIMENSION

STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS), 1

DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS), 2 PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3), 3 DFGRD0(3,3),DFGRD1(3,3) 矩阵的尺寸声明 C

C LOCAL ARRAYS

C ---------------------------------------------------------------- C EELAS - ELASTIC STRAINS C EPLAS - PLASTIC STRAINS

C FLOW - DIRECTION OF PLASTIC FLOW

C ----------------------------------------------------------------

C

局部变量,用来暂时保存弹性应变、塑性应变分量以及流动方向 DIMENSION EELAS(6),EPLAS(6),FLOW(6) C

PARAMETER(ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,SIX=6.D0, 1 ENUMAX=.4999D0,NEWTON=10,TOLER=1.0D-6) C

C ----------------------------------------------------------------

C UMAT FOR ISOTROPIC ELASTICITY AN

D ISOTROPIC MISES PLASTICITY

C CANNOT BE USE

D FOR PLAN

E STRESS

C ---------------------------------------------------------------- C PROPS(1) - E C PROPS(2) - NU

C PROPS(3..) - SYIEL

D AN HARDENING DATA

C CALLS HARDSUB FOR CURVE OF YIEL

D STRESS VS. PLASTIC STRAIN

C ---------------------------------------------------------------- C

C ELASTIC PROPERTIES C

获取杨氏模量,泊松比,作为已知量由PROPS 向量传入 EMOD=PROPS(1) E ENU=PROPS(2) ν

EBULK3=EMOD/(ONE-TWO*ENU) 3K EG2=EMOD/(ONE+ENU) 2G EG=EG2/TWO G EG3=THREE*EG 3G

ELAM=(EBULK3-EG2)/THREE λ DO K1=1,NTENS DO K2=1,NTENS

DDSDDE(K1,K2)=ZERO END DO END DO

弹性部分,Jacobian 矩阵很容易计算

注意,在ABAQUS 中,剪切应变采用工程剪切应变的定义j,i i,j ij u u +=γ,所以剪切部分模量是G 而不是2G! C

C ELASTIC STIFFNESS C

DO K1=1,NDI DO K2=1,NDI

DDSDDE(K2,K1)=ELAM

END DO

DDSDDE(K1,K1)=EG2+ELAM

END DO

DO K1=NDI+1,NTENS

DDSDDE(K1,K1)=EG

END DO

C

C RECOVER ELASTIC AN

D PLASTIC STRAINS AND ROTAT

E FORWARD

C ALSO RECOVER EQUIVALENT PLASTIC STRAIN

C

读取弹性应变分量,塑性应变分量,并旋转(调用了ROTSIG),分别保存在EELAS和EPLAS中;

CALL ROTSIG(STATEV( 1),DROT,EELAS,2,NDI,NSHR)

CALL ROTSIG(STATEV(NTENS+1),DROT,EPLAS,2,NDI,NSHR)

读取等效塑性应变STATEV中的第13个量

EQPLAS=STATEV(1+2*NTENS)

先假设没有发生塑性流动,按完全弹性变形计算试算应力

.

1

σσ

σ

ε

J

σ?

+

=

?

=

?

+n

n

C

C CALCULATE PREDICTOR STRESS AN

D ELASTIC STRAIN

C

DO K1=1,NTENS

DO K2=1,NTENS

STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1)

END DO

EELAS(K1)=EELAS(K1)+DSTRAN(K1)

END DO

C计算Mises应力

C CALCULATE EQUIVALENT VON MISES STRESS

C

SMISES=(STRESS(1)-STRESS(2))**2+(STRESS(2)-STRESS(3))**2 1 +(STRESS(3)-STRESS(1))**2

DO K1=NDI+1,NTENS

SMISES=SMISES+SIX*STRESS(K1)**2

END DO

SMISES=SQRT(SMISES/TWO)

C 根据当前等效塑性应变,调用HARDSUB得到对应的屈服应力

C GET YIEL

D STRESS FROM TH

E SPECIFIED HARDENING CURVE C

NVALUE=NPROPS/2-1

CALL HARDSUB(SYIEL0,HARD,EQPLAS,PROPS(3),NVALUE)

C

C DETERMINE IF ACTIVELY YIELDING

C 如果Mises应力大余屈服应力,屈服发生,计算流动方向

IF (SMISES.GT.(ONE+TOLER)*SYIEL0) THEN

C

C ACTIVELY YIELDING

C SEPARATE THE HYDROSTATIC FROM THE DEVIATORIC STRESS C CALCULATE THE FLOW DIRECTION

C

SHYDRO=(STRESS(1)+STRESS(2)+STRESS(3))/THREE 静水压力

DO K1=1,NDI

FLOW(K1)=(STRESS(K1)-SHYDRO)/SMISES 流动方向

END DO

DO K1=NDI+1,NTENS

FLOW(K1)=STRESS(K1)/SMISES

END DO

C根据J2理论并应用Newton-Rampson方法求得等效塑性应变增量

C SOLVE FOR EQUIVALENT VON MISES STRESS

C AN

D EQUIVALENT PLASTIC STRAIN INCREMENT USING NEWTON ITERATION

C

SYIELD=SYIEL0

DEQPL=ZERO

DO KEWTON=1,NEWTON

RHS=SMISES-EG3*DEQPL-SYIELD

DEQPL=DEQPL+RHS/(EG3+HARD)

CALL

HARDSUB(SYIELD,HARD,EQPLAS+DEQPL,PROPS(3),NVALUE)

IF(ABS(RHS).LT.TOLER*SYIEL0) GOTO 10

END DO

C

C WRITE WARNING MESSAGE TO THE .MSG FILE

C

WRITE(7,2) NEWTON

2 FORMAT(//,30X,'***WARNING - PLASTICITY ALGORITHM DID NOT ',

1 'CONVERGE AFTER ',I3,' ITERATIONS')

10 CONTINUE

σ,应变分量

C更新应力

1+

n

C UPDATE STRESS, ELASTIC AN

D PLASTIC STRAINS AND

C EQUIVALENT PLASTIC STRAIN

C

DO K1=1,NDI

STRESS(K1)=FLOW(K1)*SYIELD+SHYDRO

EPLAS(K1)=EPLAS(K1)+THREE/TWO*FLOW(K1)*DEQPL

EELAS(K1)=EELAS(K1)-THREE/TWO*FLOW(K1)*DEQPL

END DO

DO K1=NDI+1,NTENS

STRESS(K1)=FLOW(K1)*SYIELD

EPLAS(K1)=EPLAS(K1)+THREE*FLOW(K1)*DEQPL EELAS(K1)=EELAS(K1)-THREE*FLOW(K1)*DEQPL END DO

EQPLAS=EQPLAS+DEQPL

C

C CALCULATE PLASTIC DISSIPATION

C

SPD=DEQPL*(SYIEL0+SYIELD)/TWO

C

C 计算塑性变形下的Jacobian矩阵

FORMULATE THE JACOBIAN (MATERIAL TANGENT) C FIRST CALCULATE EFFECTIVE MODULI

C

EFFG=EG*SYIELD/SMISES

EFFG2=TWO*EFFG

EFFG3=THREE/TWO*EFFG2

EFFLAM=(EBULK3-EFFG2)/THREE

EFFHRD=EG3*HARD/(EG3+HARD)-EFFG3

2

3

13

3

,/2

1

3

32(1/3)3()2()pr

ij ij s ij kk

pl pl pr pr

ij ij ij ij pr

ij ij s ij s ij kk pr pr pr pr pr pr pr pr

ij ij

ij

ij kl kl

ij ij mm ij pr pr

pr pr

S S S S S S S G σησδσεηεησσ

ησησδσσσε

δεη

σσσσ=+?=?==++--==

-

=

-

经典弹塑性理论,应力表达式式如下:

其中:对时间取微分:

其中:(1/3)3/313

2(1/3)3(1/3)//31

2[ij kl kl kl mm pr

p pr

pr s s kl kl p

pr

ij ij s ij s ij kk pr

pr

ij ij mm ij kl kl kl mm ij kl s s kl ij mm pr pr s i ij mm G d G d h S d h G

G G S h K h G G K ηηε

δεσσσ

εσεεσ

ησησδσεδεηηεδεησσσε

δεσσσδδε-==+=++--=-+++=- 那么k

2

32]3/31223()[]3/31()

j mm ij kl s ij kl ij kl ij mm s s ij kl kl pr pr pr pr

ij kl kl s s s s ij mm

ij ij kl kl mm pr pr pr pr

pr ij kl kl s ij s k mm pr pr G G G h h G G G G G h

K h G G G S εηησηηηηδε

σσεεεσσσσηηδσσσσδεεηηεεσσσσηηδσησεεσσ+-++

+=-++-++= 注意:k **00G 2

G K-G 32G [3G ]/31

pr mm k s s pr pl

ij ij mm ij ij kl kl S d h d h

h G σσλσεσλδεεηηε

====

=++-+ ****()如果令:=,,则:

=======================================

if (props(7).lt..001) go to 99 c...

DO K1=1,NDI DO K2=1,NDI

DDSDDE(K2,K1)=EFFLAM END DO

DDSDDE(K1,K1)=EFFG2+EFFLAM END DO

DO K1=NDI+1,NTENS DDSDDE(K1,K1)=EFFG END DO

DO K1=1,NTENS DO K2=1,NTENS

DDSDDE(K2,K1)=DDSDDE(K2,K1)+EFFHRD*FLOW(K2)*FLOW(K1) END DO

END DO

c...

99 continue

c...

ENDIF

C将弹性应变,塑性应变分量保存到状态变量中,并传到下一个增量步

C STORE ELASTIC AN

D (EQUIVALENT) PLASTIC STRAINS

C IN STATE VARIABLE ARRAY

C

DO K1=1,NTENS

STATEV(K1)=EELAS(K1)

STATEV(K1+NTENS)=EPLAS(K1)

END DO

STATEV(1+2*NTENS)=EQPLAS

C

RETURN

END

c...

c...子程序,根据等效塑性应变,利用插值的方法得到对应的屈服应力

SUBROUTINE HARDSUB(SYIELD,HARD,EQPLAS,TABLE,NVALUE) C

INCLUDE 'ABA_PARAM.INC'

C

DIMENSION TABLE(2,NVALUE)

C

PARAMETER(ZERO=0.D0)

C

C SET YIEL

D STRESS TO LAST VALU

E O

F TABLE, HARDENIN

G TO ZERO

C

SYIELD=TABLE(1,NVALUE)

HARD=ZERO

C IF MORE THAN ONE ENTRY, SEARCH TABLE

C

IF(NVALUE.GT.1) THEN

DO K1=1,NVALUE-1

EQPL1=TABLE(2,K1+1)

IF(EQPLAS.LT.EQPL1) THEN

EQPL0=TABLE(2,K1)

IF(EQPL1.LE.EQPL0) THEN

WRITE(7,1)

1 FORMAT(//,30X,'***ERROR - PLASTIC STRAIN MUST BE `,

1 `ENTERED IN ASCENDING ORDER')

CALL XIT

ENDIF

C

C CURRENT YIEL

D STRESS AND HARDENING C 通过插值得到的硬化

DEQPL=EQPL1-EQPL0

SYIEL0=TABLE(1,K1)

SYIEL1=TABLE(1,K1+1)

DSYIEL=SYIEL1-SYIEL0

HARD=DSYIEL/DEQPL

SYIELD=SYIEL0+(EQPLAS-EQPL0)*HARD

GOTO 10

ENDIF

END DO

10 CONTINUE

ENDIF

RETURN

END

程序代码注释编写规范

程序代码注释编写规范 为提高控制程序的阅读性与可理解性,现制定相关代码程序代码注释编写的编写规范。 一般情况下,源程序有效注释量必须在20%以上,注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 常规注释有以下两种方式。 单行:以"//"符号开始,任何位于该符号之后的本行文字都视为注释。 多行:以"/*"符号开始,以"*/"结束。任何介于这对符号之间的文字都视为注释。 一、说明性文件 说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************* COPYRIGHT (C), MicTiVo International. Co., Ltd. File NAME: // 文件 Author: Version: Date: // 作者、版本及完成日期 DESCRIPTION: // 用于详细说明此程序文件完成的主要功能,与其他模块 // 或函数的接口,输出值、取值范围、含义及参数间的控 // 制、顺序、独立或依赖等关系 Others: // 其它内容的说明 Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明 1.... History: // 修改历史记录列表,每条修改记录应包括修改日期、修改 // 者及修改内容简述 1. Date: Author: Modification: 2. .. *************************************************/ 二、源文件头 源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************************ COPYRIGHT (C), MicTiVo International. Co., Ltd. FileName: Author:

UMAT全过程

UMAT全过程——技术篇 1.ABAQUS中非线性问题的处理2.用户子程序接口3.用户子程序和主程序的结合4.用户材料子程序UMAT接口的原理5.UMAT子程序流程ABAQUS是怎么计算的 I.ABAQUS一共有42个用户子程序接口,15个应用程序接口,可以定义包括边界条 件,荷载条件,接触条件,材料特性以及利用用户子程序和其它应用软件进行数值交换。 1.根据ABAQUS提供的相应接口,按照FORTRAN语法自己编写的代码,是一个独立的程序单元,可以独立地被储存和编译,也能被其他程序单元引用。 I.一般结构形式 II. 一个算例中,可以用到多个用户子程序,但必须把它们放在一个以.for为扩展名的文件中。 III.运行带有用户子程序的算例的两种方法 1.在CAE中运行,在EDIT JOB菜单中的GENRAL子菜单的USERSUBROUTINE GILE对话框中选择用户子程序所在的文件 2.在https://www.doczj.com/doc/407365535.html,MAND中运行语法如下 IV.编制用户子程序时应注意: 1.用户子程序相互之间不能调用,可以调用用户自己编写的Fortran子程序和 ABAQUS应用程序,ABAQUS应用程序必须由用户子程序调用。编写Fortran子程序时,建议子程序以K开头,以免和ABAQUS内部程序冲突。2.用户在用户子程序中利用OPEN打开外部文件时,要注意以下两点: (1)设备号的选择有限制,只能取15~18和大于100的设备号 (2)用户需提供外部文件的绝对路径而不是相对路径。3.对于不同的用户子程序,ABAQUS调用的时间不相同,有的在每个STEP的开始,有的在结尾,有的在每个 INCREMENT的开始。(当ABAQUS在调用用户子程序时,都会把当前的STEP 和INCREMENT 利用用户子程序的两个实参KSTEP 和KINC 传给用户子程序,用户可把他们输出到外部文件中,这样可清楚知道何时调用) V.ABAQUS提供给用户定义自己的材料属性的Fortran程序接口,用户材料子程序 UMAT 通过与ABAQUS主求解程序的接口实现与ABAQUS的资料交流,输入文件中,使用“UESER MATERIAL”表示定义用户材料属性。 I.UMAT子程序采用Fortran语言编制,包括以下几个部分:子程序定义语句、 ABAQUS 定义的参数说明、用户定义的局部变量说明、用户编制的程序主体、子程序返回和结束语句。I.

高中数学学考公式(大全)

高中数学学考常用公式及结论 必修1: 一、集合 1、含义与表示:(1)集合中元素的特征:确定性,互异性,无序性 (2)集合的分类;有限集,无限集 (3)集合的表示法:列举法,描述法,图示法 2、集合间的关系: 子集:对任意x A ∈,都有 x B ∈,则称A 是B 的子集。记作A B ? 真子集:若A 是B 的子集,且在B 中至少存在一个元素不属于A ,则A 是B 的真子集,记作A ≠ ?B 集合相等:若:,A B B A ??,则A B = 3. 元素与集合的关系:属于∈ 不属于:? 空集:φ 4、集合的运算:并集:由属于集合A 或属于集合B 的元素组成的集合叫并集,记为 A B 交集:由集合A 和集合B 中的公共元素组成的集合叫交集,记为A B 补集:在全集U 中,由所有不属于集合A 的元素组成的集合叫补集,记为U C A 5.集合12{,, ,}n a a a 的子集个数共有2n 个;真子集有2n –1个;非空子集有2n –1个; 6.常用数集:自然数集:N 正整数集:* N 整数集:Z 有理数集:Q 实数集:R 二、函数的奇偶性 1、定义: 奇函数 <=> f (– x ) = – f ( x ) , 偶函数 <=> f (–x ) = f ( x )(注意定义域) 2、性质:(1)奇函数的图象关于原点成中心对称图形; (2)偶函数的图象关于y 轴成轴对称图形; (3)如果一个函数的图象关于原点对称,那么这个函数是奇函数; (4)如果一个函数的图象关于y 轴对称,那么这个函数是偶函数. 二、函数的单调性 1、定义:对于定义域为D 的函数f ( x ),若任意的x 1, x 2∈D ,且x 1 < x 2 ① f ( x 1 ) < f ( x 2 ) <=> f ( x 1 ) – f ( x 2 ) < 0 <=> f ( x )是增函数 ② f ( x 1 ) > f ( x 2 ) <=> f ( x 1 ) – f ( x 2 ) > 0 <=> f ( x )是减函数 2、复合函数的单调性: 同增异减 三、二次函数y = ax 2 +bx + c (0a ≠)的性质 1、顶点坐标公式:??? ? ??--a b ac a b 44,22, 对称轴:a b x 2-=,最大(小)值:a b ac 442- 2.二次函数的解析式的三种形式 (1)一般式2 ()(0)f x ax bx c a =++≠; (2)顶点式2 ()()(0)f x a x h k a =-+≠; (3)两根式12()()()(0)f x a x x x x a =--≠.

高中数学公式大全(学考简化版)

高中数学公式大全(学考简化版) 1. 元素与集合的关系 U x A x C A ∈??,U x C A x A ∈??. 2.集合运算 全集U 交集:}{B x A x x B A ∈∈=且I ,并集:}{B x A x x B A ∈∈=?或,补集:}{A x U x x A C U ?∈=且 3.集合关系 (可以数形结合---文氏图、数轴) 空集A ?φ; 子集B A ?:任意B x A x ∈? ∈ B A B B A B A A B A ??=??=Y I 4. 包含关系A B A A B B =?=I U U U A B C B C A ????U A C B ?=ΦI U C A B R ?=U 5.集合12{,,,}n a a a L 的子集个数共有2n 个;真子集有2n –1个;非空子集有2n –1个。 6. 函数的单调性 设[]2121,,x x b a x x ≠∈?,0 12>-=?x x x , 若0)()(12>-=?x f x f y ?[]b a x f ,在) (上是增函数; 若0)()(12<-=?x f x f y ?[] b a x f ,在) (上是减函数. 对于复合函数的单调性:()f g x ???? 单调性满足:同增异减。即:()f x 与()g x 的增减性相同,那么符合函数就是增函数(同增);()f x 与()g x 的增减性相反,那么符合函数就是减函数(异减))。 7.函数的奇偶性 判断奇偶性的前提是定义域关于原点对称。 f(x)偶函数?()()f x f x -=?f(x)图象关于y 轴对称 f(x)奇函数?()()f x f x -=-?f(x)图象关于原点对称 注:(1) f(x)奇函数,在x=0有定义?f(0)=0 (2)对于复合函数:()f g x ???? :有偶则偶,两奇为奇 奇偶函数的图象特征 奇函数的图象关于原点对称,偶函数的图象关于y 轴对称;反过来,如果一个函数的图象关于原点对称,那么, 这个函数是奇函数;如果一个函数的图象关于y 轴对称,那么这个函数是偶函数. 8.二次函数解析式的两种形式 (1)一般式2 ()(0)f x ax bx c a =++≠;(2)顶点式2 ()()(0)f x a x h k a =-+≠; 二次函数在闭区间上的的最值 二次函数)0()(2 ≠++=a c bx ax x f 在闭区间[] q p ,上的最值只能在

华为JAVA编程规范

1 Java 编程规范 1.1 排版 1.1.1 规则 规则1程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进。(1.42+) 说明:缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具。 规则2分界符(如大括号…{?和…}?)应各独占一行,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序 或者static、,synchronized等语句块中都要采用如上的缩进方式。(1.42+) 示例: if (a>b) { doStart(); } 规则3较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐, 语句可读。(1.42+) 示例: if (logger.isDebugEnabled()) { logger.debug("Session destroyed,call-id" + event.getSession().getCallId()); } 规则4不允许把多个短语句写在一行中,即一行只写一条语句(1.42+) 说明:阅读代码更加清晰 示例:如下例子不符合规范。 Object o = new Object(); Object b = null; 规则5if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while,switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。 (1.42+) 说明:阅读代码更加清晰,减少错误产生 示例: if (a>b) { doStart(); }

ABAQUS子程序UMAT里弹塑本构的实现

前言 有限元法是工程中广泛使用的一种数值计算方法。它是力学、计算方法和计算机技术相结合的产物。在工程应用中,有限元法比其它数值分析方法更流行的一个重要原因在于:相对与其它数值分析方法,有限元法对边界的模拟更灵活,近似程度更高。所以,伴随着有限元理论以及计算机技术的发展,大有限元软件的应用证变得越来越普及。 ABAQUS软件一直以非线性有限元分析软件而闻名,这也是它和ANSYS,Nastran等软件的区别所在。非线性有限元分析的用处越来越大,因为在所用材料非常复杂很多情况下,用线性分析来近似已不再有效。比方说,一个复合材料就不能用传统的线性分析软件包进行分析。任何与时间有关联,有较大位移量的情况都不能用线性分析法来处理。多年前,虽然非线性分析能更适合、更准确的处理问题,但是由于当时计算设备的能力不够强大、非线性分析软件包线性分析功能不够健全,所以通常采用线性处理的方法。 这种情况已经得到了极大的改善,计算设备的能力变得更加强大、类似ABAQUS这样的产品功能日臻完善,应用日益广泛。 非线性有限元分析在各个制造行业得到了广泛应用,有不少大型用户。航空航天业一直是非线性有限元分析的大客户,一个重要原因是大量使用复合材料。新一代波音 787客机将全部采用复合材料。只有像 ABAQUS这样的软件,才能分析包括多个子系统的产品耐久性能。在汽车业,用线性有限元分析来做四轮耐久性分析不可能得到足够准确的结果。分析汽车的整体和各个子系统的性能要求(如悬挂系统等)需要进行非线性分析。在土木工程业, ABAQUS能处理包括混凝土静动力开裂分析以及沥青混凝土方面的静动力分析,还能处理高度复杂非线性材料的损伤和断裂问题,这对于大型桥梁结构,高层建筑的结构分析非常有效。 瞬态、大变形、高级材料的碰撞问题必须用非线性有限元分析来计算。线性分析在这种情况下是不适用的。以往有一些专门的软件来分析碰撞问题,但现在ABAQUS在通用有限元软件包就能解决这些问题。所以,ABAQUS可以在一个软件完成线性和非线性分析。 ABAQUS给用户提供了强大二次开发接口,尤其是在材料本构方面,给用户开发符合实际工程的材料本构模型提供了强大帮助,本文将针对其用户材料子程序展开研究,总结常用材料模型的开发方法。

2020高中数学概念公式大全

高中数学概念公式大全 一、 三角函数 1、以角α的顶点为坐标原点,始边为x 轴正半轴建立直角坐标系,在角α的终边上任取一个异于原点的点),(y x P ,点P 到原点的距离记为r ,则 sin α= r y ,cos α=r x ,tg α=x y ,ctg α=y x ,sec α=x r ,csc α=y r 。 2、同角三角函数的关系中,平方关系是:1cos sin 22=+αα, αα22sec 1=+tg ,αα22csc 1=+ctg ; 倒数关系是:1=?ααctg tg ,1csc sin =?αα,1sec cos =?αα; 相除关系是:αααcos sin = tg ,α α αsin cos =ctg 。 3、诱导公式可用十个字概括为:奇变偶不变,符号看象限。如: =-)23sin(απαcos -,)215(απ -ctg =αtg , =-)3(απtg αtg -。 4、函数B x A y ++=)sin(?ω),(其中00>>ωA 的最大值是 B A +,最小值是A B -,周期是ω π 2= T ,频率是π ω 2= f ,相位是?ω+x ,初相是?;其图象的对称轴是直线 )(2 Z k k x ∈+ =+π π?ω,凡是该图象与直线B y =的交点都 是该图象的对称中心。 5、三角函数的单调区间:

x y sin =的递增区间是?????? +-2222ππππk k ,)(Z k ∈,递减区间是?? ???? ++23222ππππk k ,)(Z k ∈;x y cos =的递增区间是[]πππk k 22,-)(Z k ∈,递减区间是[]πππ+k k 22, )(Z k ∈,tgx y =的递增区间是?? ? ? ?+ - 22 πππ πk k ,)(Z k ∈,ctgx y =的递减区间是()πππ+k k ,)(Z k ∈。 6、=±)sin(βαβαβαsin cos cos sin ± =±)cos(βαβαβαsin sin cos cos μ = ±)(βαtg β αβ αtg tg tg tg ?±μ1 7、二倍角公式是:sin2α=ααcos sin 2? cos2α=αα2 2 sin cos -=1cos 22 -α=α2 sin 21- tg2α= α α 212tg tg -。 8、三倍角公式是:sin3α=αα3 sin 4sin 3- cos3α=ααcos 3cos 43 - 9、半角公式是:sin 2α=2cos 1α-± cos 2α=2 cos 1α +± tg 2α=α αcos 1cos 1+-±=ααsin cos 1-=ααcos 1sin +。

程序代码编写规范

程序编写规范及约定 (仅供内部使用) 文档作者:_______________ 日期:___/___/___ 开发/测试经理:_______________ 日期:___/___/___ 项目经理:_______________ 日期:___/___/___ 请在这里输入公司名称 版权所有不得复制

目录 程序编写规范及约定 (3) 1编写目的 (3) 2代码编写风格 (3) 2.1单元风格 (3) 2.2语句风格 (3) 3命名规则 (3) 3.1命名约定 (3) 3.1.1标志符 (3) 3.1.2类class (3) 3.1.3枚举类型enum (4) 3.1.4委托delegate (4) 3.1.5常量const (4) 3.1.6接口interface (4) 3.1.7方法function (4) 3.1.8命名空间namespace (4) 3.1.9参数 (4) 3.1.10局部变量 (5) 3.1.11数据成员 (5) 3.1.12自定义异常类 (5) 3.1.13命名缩写 (5) 3.1.14数据库命名 (5) 3.2代码编写命名规范 (6) 3.3界面常用控件命名约定 (6) 3.4文件命名规范 (7) 3.4.1文档文件命名 (7) 3.4.2配置文件命名 (7) 3.4.3程序文件命名 (7)

程序编写规范及约定 1编写目的 为了使编写代码具有可读性、可理解性、可维护性,对程序编写人员代码实行统一风格,使得程序代码能够以名称反映含义、以形式反映结构。此文档可供程序代码编写人员及代码维护人员使用。 2代码编写风格 2.1单元风格 2.2语句风格 3命名规则 3.1命名约定 Pascal和Camel命名约定: 编程的命名方式主要有Pascal和Camel两种(Pascal:每个单词的首字母大写,例如ProductType;Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType) 3.1.1标志符 规则:Pascal、Camel 实例与描述:例子说明 3.1.2类class 规则:Pascal 实例与描述:Application

abaqus简单umat子程序

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT, 1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED, 2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT, 3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) include 'aba_param.inc' CHARACTER*8 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS), 1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS), 2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3), 3 DFGRD0(3,3),DFGRD1(3,3) C UMAT FOR ISOTROPIC ELASTICITY C CANNOT BE USE D FOR PLAN E STRESS C ---------------------------------------------------------------- C PROPS(1) - E C PROPS(2) - NU C ---------------------------------------------------------------- C IF (NDI.NE.3) THEN WRITE (*,*) 'THIS UMAT MAY ONLY BE USED FOR ELEMENTS 1 WITH THREE DIRECT STRESS COMPONENTS' CALL XIT ENDIF open(400,file='D:\test.txt') C ELASTIC PROPERTIES EMOD=PROPS(1) ENU=PROPS(2) EBULK3=EMOD/(1-2*ENU) EG2=EMOD/(1+ENU) EG=EG2/2 EG3=3*EG ELAM=(EBULK3-EG2)/3 write(400,*) 'temp=',temp C ELASTIC STIFFNESS C DO K1=1, NDI DO K2=1, NDI DDSDDE(K2, K1)=ELAM END DO DDSDDE(K1, K1)=EG2+ELAM

高中数学学业水平考试必备公式

高中数学学业水平考试必备公式

一、 1、定义域: (1)根号: (2)分母: (3)对数: 2、对数与指数互换:725log 8x a =? =? ()a b a b a b x x x x x =÷==g 3、奇函数:f(x)与f(-x)_____ 偶函数:f(x)与f(-x)_____ 二、 1、诱导公式: sin ()πα+= cos ()πα+= tan ()πα+= sin () πα-= cos () πα-= tan () πα-= sin ()2πα+= cos ()2 π α+= sin ()2πα-= cos ()2 πα-= sin 2) (πα+= cos 2) (πα+= tan 2) (πα+= sin (2)πα-= cos (2)πα-= tan (2)πα-= sin ( )α-= cos ( )α-= tan ( )α-= log log log log a a a a M N M N +=-=

2、两角和与差公式: Sin: Cos: Tan: 3、二倍角: sin2α= cos2α= = = tan2α= 4、正弦定理: 余弦定理: 5、特殊角三角函数值 α 0 6π 4π 3π 2π 23 π 34 π 56 π 2π Sin cos tan 6 、 sin() y A x ω?=+的 周 期 是 : cos()y A x ω?=+的周期是: tan() y A x ω?=+的周期是: 7、同角三角函数关系:(1)

(2) 三、 等差数列 通项公式: 前n 项和公式: 等差中项:(a,b,c ) 等比数列 通项公式: 前n 项和公式: 等比中项:(a,b,c ) 四、 直线: 1.(k 与倾斜角)k= 两点的斜率公式k= 2. 3.直线Ax+By+C=0的斜率: 4.点到直线距离公式: 5.平行线间的距离公式: 6.圆的标准方程: 圆心: 半径: 7. 圆 的一般方程: (方程表示圆的条件: ) 圆心: 半 12//l l ?12l l ⊥? 220 x y Dx Ey F ++++=

程序代码注释编写规范

百度文库- 让每个人平等地提升自我 1 程序代码注释编写规范 为提高控制程序的阅读性与可理解性,现制定相关代码程序代码注释编写的编写规范。 一般情况下,源程序有效注释量必须在20%以上,注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 常规注释有以下两种方式。 单行:以"文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************* (C), MicTiVo International. Co., Ltd. 1.File : . History: Date: Author: Modification: 2. .. *************************************************/ 一、源文件头 源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************************ (C), MicTiVo International. Co., Ltd. FileName: Author: Version : Date: : / /*receive _process() */ 意:与溢出中断写初值不同}

ABAQUS-二次开发资料-UMAT

各个楼层及内容索引 2-------------------------------------什么是UMAT 3-------------------------------------UMAT功能简介 4-------------------------------------UMAT开始的变量声明 5-------------------------------------UMAT中各个变量的详细解释 6-------------------------------------关于沙漏和横向剪切刚度 7-------------------------------------UMAT流程和参数表格实例展示 8-------------------------------------FORTRAN语言中的接口程序Interface 9-------------------------------------关于UMAT是否可以用Fortran90编写的问题 10-17--------------------------------Fortran77的一些有用的知识简介 20-25\30-32-----------------------弹塑性力学相关知识简介 34-37--------------------------------用户材料子程序实例JOhn-cook模型压缩包下载 38-------------------------------------JOhn-cook模型本构简介图 40-------------------------------------用户材料子程序实例JOhn-cook模型完整程序+david详细注解[欢迎大家来看看,并提供意见,完全是自己的diy的,不保证完全正确,希望共同探讨,以便更正,带"?"部分,还望各位大师\同仁指教] 1什么是UMAT??? 1.1 UMAT功能简介!!![-摘自庄茁老师的书 UMAT子程序具有强大的功能,使用UMAT子程序: (1)可以定义材料的本构关系,使用ABAQUS材料库中没有包含的材料进行计算,扩充程序 功能。ABAQUS软件2003年度用户年会论文集 (2)几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQUS中 的任何单元; (3)必须在UMAT中提供材料本构模型的雅可比(Jacobian)矩阵,即应力增量对应变增量 的变化率。 (4)可以和用户子程序“USDFLD”联合使用,通过“USDFLD”重新定义单元每一物质点上传 递到UMAT中场变量的数值。 1.2 UMAT开始的变量声明 由于主程序与UMAT之间存在数据传递,甚至共用一些变量,因此必须遵守有关书写格式,UMAT中常用的变量在文件开头予以定义,通常格式为: SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, 1 RPL,DDSDDT,DRPLDE,DRPLDT, 2STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME 3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,

程序代码注释编写规范

程序代码注释编写规范 XXX份公司

为提高控制程序的阅读性与可理解性,现制定相关代码程序代码注释编写的编写规范。 一般情况下,源程序有效注释量必须在20%以上,注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 常规注释有以下两种方式。 单行:以"//"符号开始,任何位于该符号之后的本行文字都视为注释。 多行:以"/*"符号开始,以"*/"结束。任何介于这对符号之间的文字都视为注释。 一、说明性文件 说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************* COPYRIGHT (C), MicTiVo International. Co., Ltd. File NAME: // 文件 Author: Version: Date: // 作者、版本及完成日期 DESCRIPTION: // 用于详细说明此程序文件完成的主要功能,与其他模块 // 或函数的接口,输出值、取值范围、含义及参数间的控 // 制、顺序、独立或依赖等关系 Others: // 其它内容的说明 Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明 1.... History: // 修改历史记录列表,每条修改记录应包括修改日期、修改 // 者及修改内容简述 1. Date: Author: Modification: 2. .. *************************************************/ 二、源文件头 源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************************

C语言编写规范之注释

1、头文件包含Includes 2、私有类型定义 Private typedef 3、私有定义Private define 4、私有宏定义 Private macro 5、私有变量 Private variables 6、私有函数原型Private function prototypes 7、私有函数Private functions 8、私有函数前注释 /****************************************************************************** * * Function Name : FSMC_NOR_Init * Description : Configures the FSMC and GPIOs to interface with the NOR memory. * This function must be called before any write/read operation * on the NOR. * Input : None * Output : None * Return : None ******************************************************************************* / 9、程序块采用缩进风格编写,缩进空格为4。 10、相对独立的程序块之间、变量说明之后必须加空行; 11、较长的字符(>80字符)要分成多行书写,长表达式要在低优先级操作符划分新行,操作符放在新行之首,新行要恰当缩进,保持排版整齐; 12、循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首; 13、若函数或过程中的参数较长,则要进行适当的划分。 14、不允许把多个短语句写在一行中,即一行只写一条语句。 15、if、for、do、while、case、switch、default等语句自占一行,且if、for、 do、while等语句的执行语句部分无论多少都要加括号{}。 16、对齐只使用空格键,不使用TAB键; 17、 函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case 语句下的情况处理语句也要遵从语句缩进要求 18、 程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一 列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以 及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 19、 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或

Abaqus材料用户子程序UMAT基础知识与手册例子完整解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )? 很简单,当ABAQUS 没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。 UMAT 子程序具有强大的功能,使用UMAT 子程序: (1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。 (2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。 (3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。 (4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。 2、需要哪些基础知识? 先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话: Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。当然,最基本的一些概念和知识还是要具备的,比如: 应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modul us )、泊松比(Poisson’s ratio)、拉梅常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。 3、UMAT 的基本任务? 我们知道,有限元计算(增量方法)的基本问题是: 已知第n 步的结果(应力,应变等)n σ,n ε,然后给出一个应变增量1+n d ε,计算新的应力1+n σ。UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =εσΔ?Δ?/。σΔ是应力增量矩阵(张量或许更合适),εΔ是应变增量矩阵。DDSDDE(I,J) 定义了第J 个应变分量的微小变化对

高中数学公式大全高考必看(1)教学文案

高中数学公式大全高考必看(1)

高中数学常用公式及常用结论大全 1. 元素与集合的关系 U x A x C A ∈??,U x C A x A ∈??. 2.德摩根公式 ();()U U U U U U C A B C A C B C A B C A C B ==I U U I . 3.包含关系 A B A A B B =?=I U U U A B C B C A ???? U A C B ?=ΦI U C A B R ?=U 2.集合12{,,,}n a a a L 的子集个数共有2n 个;真子集有2n –1个;非空子集有2n –1个;非空的真子集有2n –2个. 3.二次函数的解析式的三种形式 (1)一般式2()(0)f x ax bx c a =++≠; (2)顶点式2()()(0)f x a x h k a =-+≠; (3)零点式12()()()(0)f x a x x x x a =--≠. 4.充要条件 (1)充分条件:若p q ?,则p 是q 充分条件. (2)必要条件:若q p ?,则p 是q 必要条件. (3)充要条件:若p q ?,且q p ?,则p 是q 充要条件. 注:如果甲是乙的充分条件,则乙是甲的必要条件;反之亦然. 5.若将函数)(x f y =的图象右移a 、上移b 个单位,得到函数b a x f y +-=)(的图象;若将曲线0),(=y x f 的图象右移a 、上移b 个单位,得到曲线0),(=--b y a x f 的图象. 6.分数指数幂 (1)m n a = (0,,a m n N *>∈,且1n >). (2)1 m n m n a a -=(0,,a m n N *>∈,且1n >). 7.根式的性质(1 )n a =;(2)当n a =;

程序源代码注释规范

程序注释规范说明 程序注释规范应包括以下三方面: 一、文件头部注释 在代码文件的头部进行注释,这样做的好处在于,我们能对代码文件做变更跟踪。在代码头部分标注出创始人、创始时间、修改人、修改时间、代码的功能,这在团队开发中必不可少,它们可以使后来维护/修改的同伴在遇到问题时,在第一时间知道他应该向谁去寻求帮助,并且知道这个文件经历了多少次迭代、经历了多少个程序员的开发和修改。 样本: /***************************************************** ** 作者:Liuchao ** 创始时间:2007-11-12 ** 修改人:Liuchao ** 修改时间:2007-11-12 ** 修改人:Liaochao ** 修改时间:2007-11-12 ** 描述: ** 主要用于产品信息的资料录入,… *****************************************************/ 二、函数、属性、类等注释 请使用///三斜线注释,这种注释是基于XML的,不仅能导出XML制作帮助文档,而且在各个函数、属性、类等的使用中,编辑环境会自动带出注释,方便你的开发。以protected,protected Internal,public声明的定义注释都建议以这样命名方法。 例如: ///

/// 用于从ERP系统中捞出产品信息的类 ///

class ProductTypeCollector { … } 三、逻辑点注释 在我们认为逻辑性较强的地方加入注释,说明这段程序的逻辑是怎样的,以方便我们自己后来的理解以及其他人的理解,并且这样还可以在一定程度上排除BUG。在注释中写明我们的逻辑思想,对照程序,判断程序是否符合我们的初衷,如果不是,则我们应该仔细思考耀修改的是注释还是程序了… 四、变量注释 我们在认为重要的变量后加以注释,说明变量的含义,以方便我们自己后来的理解以及其他人的理解,并且这样还可以在一定程度上排除BUG.我们常用///三斜线注释。 /// 用于从ERP系统中捞出产品信息的类 class ProductTypeCollector { int STData;/// … }

UMAT子程序在复合材料强度分析中的应用

UMAT子程序在复合材料强度分析中 的应用 本例使用UMAT用户子程序进行复合材料单层板的应力分析和渐进损伤压缩强度分析,介绍UMA T用户子程序编写方法及在Abaqus/CAE中的设置。本章使用最大应变强度理论作为复合材料单层板的失效准则,相应的Fortran程序简单易读,便于理解UAMT子程序的工作原理。 知识要点: 强度分析 UMAT用户子程序 最大应变理论 刚度折减讲师:孔祥宏 版本:Abq 6.14 难度: 关键词:强度分析,UMAT

『 2 』 第&章复合材料分析入门 &.1 本章内容简介 本章通过两个实例介绍UMAT用户子程序在复合材料单层板的应力分析和强度分析中的应用。在第一个实例中,对一个简单的复合材料单层板进行应力分析,UMAT子程序主要计算应力,不进行强度分析,本例用于验证UMA T子程序的计算精度。在第二个实例中,对复合材料单层板进行渐进损伤强度分析,UMAT子程序用于应力计算、强度分析和刚度折减。 本章所用复合材料为T700/BA9916,材料属性如表&-1所示。 表&-1 T700/BA9916材料属性 参数值强度值 E1/GPa 114 X T/MPa 2688 E2/GPa 8.61 X C/MPa 1458 E3/GPa 8.61 Y T/MPa 69.5 μ120.3 Y C/MPa 236 μ130.3 Z T/MPa 55.5 μ230.45 Z C/MPa 175 G12/GPa 4.16 S XY/MPa 136 G13/GPa 4.16 S XZ/MPa 136 G23/GPa 3.0 S YZ/MPa 95.6

相关主题
文本预览
相关文档 最新文档