嗨,,
我正在写一个vumat代码。我想知道如何得到vumat中当前材质点的元素号。如你所知,我们可以从诺埃尔那里知道。但是在虚拟世界中,如何获得它呢?
谢谢
王
你好,小王,
我有一些关于如何在VUMAT中获得元素号的信息:
从VUMAT中获取元素号和材料积分号--------------------------------------------------------------------------------
从v6.4开始,以下信息被传递给(并且可以访问自)VUMAT:元素数量,综合站号;层(或段)号;积分点数。
为了保持向后兼容性,VUMAT的接口没有被修改修改。但是,VUMAT现在使用指向数组的指针调用整数作为第一个参数,在nblock的通常位置。第一个组件的数组包含nblock,它确保所有元素都存在vumat将继续工作。数组的其余部分包含所有其他相关的信息。为了提取额外的信息数组,我们建议遵循下面的示例,它是自解释的。
--------------------------------------------------------------------------------
cc用户子程序VUMAT子程序vumat (c只读-* jblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,* stepTime, totalTime, dt, cmname, coordMp, charLength,* props, density, strain, relspin,* tempOld, stretchOld, defgradOld, fieldOld,* stressOld, statold, enerInternOld, enerInelasOld,* tempNew, stretchNew, defgradNew, fieldNew,c只写—*压力新,statennew, enerInternNew, enerInelasNewc包括“vabua_param.inc”c尺寸jblock(*), props(nprops),density(*), coordMp(*),1 charLength(*), strain (*),2 relSpinInc(*), tempOld(*),3 stretchOld (*),4 defgradOld (*),5 . fieldOld(*), stressOld(*),6 statold (*), enerinterold (*),7 . enerInelasOld(*), tempNew(*),8 stretchNew (*),9 defgradNew (*),1 fieldNew (*),2 . stressNew(*), statennew (*),3 enerinternew (*), enerInelasNew(*)c字符* 80 cmname
参数(* i_umt_nblock = 1,* i_umt_npt = 2;* i_umt_layer = 3,* i_umt_kspt = 4,* i_umt_noel = 5)
调用vumatXtrArg (jblock(i_umt_nblock),* ndir, nshr, nstatev, nfieldv, nprops, lanneal,* stepTime, totalTime, dt, cmname, coordMp, charLength,* props, density, strain, relspin,* tempOld, stretchOld, defgradOld, fieldOld,* stressOld, statold, enerInternOld, enerInelasOld,* tempNew, stretchNew, defgradNew, fieldNew,* * stressNew, statennew, enerInternNew, enerInelasNew,* jblock(i_umt_noel), jblock(i_umt_npt),* jblock(i_umt_layer), jblock(i_umt_kspt)
返回结束
c子程序vumatxtrg (c只读-* nblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,* stepTime, totalTime, dt, cmname, coordMp, charLength,* props, density, strain, relspin,* tempOld, stretchOld, defgradOld, fieldOld,* stressOld, statold, enerInternOld, enerInelasOld,* tempNew, stretchNew, defgradNew, fieldNew,c只写—* * stressNew, statennew, enerInternNew, enerInelasNew,c只读额外参数-* nElement, nMatPoint, nLayer, nSecPoint)包括“vaba_param.inc”c尺寸props(nprops),密度(nblock),坐标mp (nblock,*),1 charLength(nblock), strain (nblock,ndir+nshr),2 . relSpinInc(nblock,nshr), tempOld(nblock),3 stretchOld (nblock ndir + nshr)4 defgradOld (nblock ndir + nshr + nshr),5 . fieldOld(nblock,nfieldv), stressOld(nblock,ndir+nshr),6 statold (nblock,nstatev), enerinterold (nblock),7 . enerInelasOld(nblock), tempNew(nblock),8 stretchNew (nblock ndir + nshr)9 defgradNew (nblock, ndir + nshr + nshr),1 fieldNew (nblock nfieldv),2 . statennew (nblock,ndir+nshr), statennew (nblock,nstatev),3 enerinternew (nblock), enerInelasNew(nblock)cc额外参数的文档:nElement:内部元素编号的数组维nElement (nblock)c nMatPoint:积分点编号c nLayer:复合壳和层状固体的层数c nSecPoint:当前层内的Section点数c字符* 80 cmnameckm = 1, nblock吗cc用户编码…c最后做
问候,
马丁·j·格罗斯
谢谢。你给我的代码可以正常工作,谢谢
最好的问候,
王医生
你好,
有人能多告诉我一些吗?我试图在塑性应变非局部平均的背景下使用它。但是在子程序vumatXtrarg中访问元素和积分点数字似乎并不那么容易……
乔纳森
亲爱的毛,
我采用了你建议的结构;然而,我在日志文件中得到一个错误,像这样:
vumat-edit.for(5):错误#5082:语法错误,当期望:*)时发现end - statement
子程序vumat (
------------------------------------------------------------------^
vumat-edit.for(7): error #5082:语法错误,当期望 < end - statement >时发现'*';Block Block data程序模块类型整数实…
* jblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,
- ^
vumat-edit.for(7): error #5082:语法错误,发现end - statement时期望:( …
----------------------------------------------------------------------^
vumat-edit.for(8): error #5082:语法错误,当期望 < end - statement >时发现'*';Block Block data程序模块类型整数实…
* stepTime, totalTime, dt, cmname, coordMp, charLength,
vumat-edit.for(8):错误#5082:语法错误,当期望:%FILL 时发现end - statement
---------------------------------------------------------------------^
vumat-edit.for(9): error #5082:语法错误,当期望 < end - statement >时发现'*';Block Block data程序模块类型整数实…
* props, density, strain, relspin,
vumat-edit.for(9):错误#5082:语法错误,当期望:%FILL 时发现end - statement
------------------------------------------------------^
vumat-edit.for(10): error #5082:语法错误,当期望 < end - statement >时发现'*';Block Block data程序模块类型整数实…
* tempOld, stretchOld, defgradOld, fieldOld,
vumat-edit.for(10):错误#5082:语法错误,当期望:%FILL 时发现end - statement
----------------------------------------------------------^
vumat-edit.for(11): error #5082:语法错误,当期望 < end - statement >时发现'*';Block Block data程序模块类型整数实…
* stressOld, statold, enerInternOld, enerInelasOld,
vumat-edit.for(11):错误#5082:语法错误,当期望:%FILL 时发现end - statement
vumat-edit.for(12): error #5082:语法错误,当期望 < end - statement >时发现'*';Block Block data程序模块类型整数实…
* tempNew, stretchNew, defgradNew, fieldNew,
vumat-edit.for(12):错误#5082:语法错误,当期望:%FILL 时发现end - statement
vumat-edit.for(14):错误#5276:圆括号不平衡
*压力新,statennew, enerInternNew, enerInelasNew
-------------------------------------------------------------------^
vumat-edit.for(14): error #5082:语法错误,当期望 < end - statement >时发现'*';Block Block data程序模块类型整数实…
vumat-edit.for(14): error #5082:语法错误,当期望:(*,< end - statement >;[/ = =>]
vumat-edit.for(38):错误#5082:语法错误,当期望之一时发现end - statement
参数(
-----------------------------------------------------------^
vumat-edit.for(39): error #5082:语法错误,当期望 < end - statement >时发现'*';Block Block data程序模块类型整数实…
*i_umt_nblock = 1,
vumat-edit.for(39):错误#5082:语法错误,发现end - statement时期望:( …
---------------------------------^
vumat-edit.for(40): error #5082:语法错误,当期望 < end - statement >时发现'*';Block Block data程序模块类型整数实…
*i_umt_npt = 2;
vumat-edit.for(40):错误#5082:语法错误,发现end - statement时期望:( …
------------------------------^
vumat-edit.for(41): error #5082:语法错误,当期望 < end - statement >时发现'*';Block Block data程序模块类型整数实…
* i_umt_layer = 3,
…
似乎所有行首带有“*”的行都会产生错误。你知道我怎样才能克服这个问题吗?
谢谢,
Ozan
评论
vumat中的元素号
你好,小王,
我有一些关于如何在VUMAT中获得元素号的信息:
从VUMAT中获取元素号和材料积分号
--------------------------------------------------------------------------------
从v6.4开始,以下信息被传递给(并且可以
访问自)VUMAT:
元素数量,
综合站号;
层(或段)号;
积分点数。
为了保持向后兼容性,VUMAT的接口没有被修改
修改。但是,VUMAT现在使用指向数组的指针调用
整数作为第一个参数,在nblock的通常位置。第一个
组件的数组包含nblock,它确保所有元素都存在
vumat将继续工作。数组的其余部分包含所有其他
相关的信息。为了提取额外的信息
数组,我们建议遵循下面的示例,它是
自解释的。
--------------------------------------------------------------------------------
c
c用户子程序VUMAT
子程序vumat (
c只读-
* jblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,
* stepTime, totalTime, dt, cmname, coordMp, charLength,
* props, density, strain, relspin,
* tempOld, stretchOld, defgradOld, fieldOld,
* stressOld, statold, enerInternOld, enerInelasOld,
* tempNew, stretchNew, defgradNew, fieldNew,
c只写—
*压力新,statennew, enerInternNew, enerInelasNew
c
包括“vabua_param.inc”
c
尺寸jblock(*), props(nprops),density(*), coordMp(*),
1 charLength(*), strain (*),
2 relSpinInc(*), tempOld(*),
3 stretchOld (*),
4 defgradOld (*),
5 . fieldOld(*), stressOld(*),
6 statold (*), enerinterold (*),
7 . enerInelasOld(*), tempNew(*),
8 stretchNew (*),
9 defgradNew (*),
1 fieldNew (*),
2 . stressNew(*), statennew (*),
3 enerinternew (*), enerInelasNew(*)
c
字符* 80 cmname
参数(
* i_umt_nblock = 1,
* i_umt_npt = 2;
* i_umt_layer = 3,
* i_umt_kspt = 4,
* i_umt_noel = 5)
调用vumatXtrArg (jblock(i_umt_nblock),
* ndir, nshr, nstatev, nfieldv, nprops, lanneal,
* stepTime, totalTime, dt, cmname, coordMp, charLength,
* props, density, strain, relspin,
* tempOld, stretchOld, defgradOld, fieldOld,
* stressOld, statold, enerInternOld, enerInelasOld,
* tempNew, stretchNew, defgradNew, fieldNew,
* * stressNew, statennew, enerInternNew, enerInelasNew,
* jblock(i_umt_noel), jblock(i_umt_npt),
* jblock(i_umt_layer), jblock(i_umt_kspt)
返回
结束
c
子程序vumatxtrg (
c只读-
* nblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,
* stepTime, totalTime, dt, cmname, coordMp, charLength,
* props, density, strain, relspin,
* tempOld, stretchOld, defgradOld, fieldOld,
* stressOld, statold, enerInternOld, enerInelasOld,
* tempNew, stretchNew, defgradNew, fieldNew,
c只写—
* * stressNew, statennew, enerInternNew, enerInelasNew,
c只读额外参数-
* nElement, nMatPoint, nLayer, nSecPoint)
包括“vaba_param.inc”
c
尺寸props(nprops),密度(nblock),坐标mp (nblock,*),
1 charLength(nblock), strain (nblock,ndir+nshr),
2 . relSpinInc(nblock,nshr), tempOld(nblock),
3 stretchOld (nblock ndir + nshr)
4 defgradOld (nblock ndir + nshr + nshr),
5 . fieldOld(nblock,nfieldv), stressOld(nblock,ndir+nshr),
6 statold (nblock,nstatev), enerinterold (nblock),
7 . enerInelasOld(nblock), tempNew(nblock),
8 stretchNew (nblock ndir + nshr)
9 defgradNew (nblock, ndir + nshr + nshr),
1 fieldNew (nblock nfieldv),
2 . statennew (nblock,ndir+nshr), statennew (nblock,nstatev),
3 enerinternew (nblock), enerInelasNew(nblock)
c
c额外参数的文档:
nElement:内部元素编号的数组
维nElement (nblock)
c nMatPoint:积分点编号
c nLayer:复合壳和层状固体的层数
c nSecPoint:当前层内的Section点数
c
字符* 80 cmname
c
km = 1, nblock吗
c
c用户编码…
c
最后做
返回
结束
问候,
马丁·j·格罗斯
谢谢。
马丁·j·格罗斯
谢谢。你给我的代码可以正常工作,谢谢
最好的问候,
王医生
访问VUMAT内的元素和集成点编号
你好,
有人能多告诉我一些吗?我试图在塑性应变非局部平均的背景下使用它。但是在子程序vumatXtrarg中访问元素和积分点数字似乎并不那么容易……
谢谢
乔纳森
编译错误
亲爱的毛,
我采用了你建议的结构;然而,我在日志文件中得到一个错误,像这样:
vumat-edit.for(5):错误#5082:语法错误,当期望:*)时发现end - statement
子程序vumat (
------------------------------------------------------------------^
vumat-edit.for(7): error #5082:语法错误,当期望
* jblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,
- ^
vumat-edit.for(7): error #5082:语法错误,发现end - statement时期望:( …
* jblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,
----------------------------------------------------------------------^
vumat-edit.for(8): error #5082:语法错误,当期望
* stepTime, totalTime, dt, cmname, coordMp, charLength,
- ^
vumat-edit.for(8):错误#5082:语法错误,当期望:%FILL时发现end - statement
* stepTime, totalTime, dt, cmname, coordMp, charLength,
---------------------------------------------------------------------^
vumat-edit.for(9): error #5082:语法错误,当期望
* props, density, strain, relspin,
- ^
vumat-edit.for(9):错误#5082:语法错误,当期望:%FILL时发现end - statement
* props, density, strain, relspin,
------------------------------------------------------^
vumat-edit.for(10): error #5082:语法错误,当期望
* tempOld, stretchOld, defgradOld, fieldOld,
- ^
vumat-edit.for(10):错误#5082:语法错误,当期望:%FILL时发现end - statement
* tempOld, stretchOld, defgradOld, fieldOld,
----------------------------------------------------------^
vumat-edit.for(11): error #5082:语法错误,当期望
* stressOld, statold, enerInternOld, enerInelasOld,
- ^
vumat-edit.for(11):错误#5082:语法错误,当期望:%FILL时发现end - statement
* stressOld, statold, enerInternOld, enerInelasOld,
------------------------------------------------------------------^
vumat-edit.for(12): error #5082:语法错误,当期望
* tempNew, stretchNew, defgradNew, fieldNew,
- ^
vumat-edit.for(12):错误#5082:语法错误,当期望:%FILL时发现end - statement
* tempNew, stretchNew, defgradNew, fieldNew,
----------------------------------------------------------^
vumat-edit.for(14):错误#5276:圆括号不平衡
*压力新,statennew, enerInternNew, enerInelasNew
-------------------------------------------------------------------^
vumat-edit.for(14): error #5082:语法错误,当期望
*压力新,statennew, enerInternNew, enerInelasNew
- ^
vumat-edit.for(14): error #5082:语法错误,当期望:(*,< end - statement >;[/ = =>]
*压力新,statennew, enerInternNew, enerInelasNew
-------------------------------------------------------------------^
vumat-edit.for(38):错误#5082:语法错误,当期望之一时发现end - statement
参数(
-----------------------------------------------------------^
vumat-edit.for(39): error #5082:语法错误,当期望
*i_umt_nblock = 1,
- ^
vumat-edit.for(39):错误#5082:语法错误,发现end - statement时期望:( …
*i_umt_nblock = 1,
---------------------------------^
vumat-edit.for(40): error #5082:语法错误,当期望
*i_umt_npt = 2;
- ^
vumat-edit.for(40):错误#5082:语法错误,发现end - statement时期望:( …
*i_umt_npt = 2;
------------------------------^
vumat-edit.for(41): error #5082:语法错误,当期望
* i_umt_layer = 3,
…
似乎所有行首带有“*”的行都会产生错误。你知道我怎样才能克服这个问题吗?
谢谢,
Ozan