VUHARD
1、子程序用途
材料定義包括用戶自定義的各向同性硬化或金屬塑性的循環(huán)硬化的單元的所有材料點(diǎn)將會(huì)調(diào)用這個(gè)子程序。
可用于定義材料的各向同性屈服行為;
可用于在組合硬化模型中定義屈服表面的尺寸;
可以包括依賴于場(chǎng)變量或狀態(tài)變量的材料行為;和要求相對(duì)于適當(dāng)?shù)莫?dú)立變量(如應(yīng)變、應(yīng)變率和溫度)定義屈服應(yīng)力(或組合硬化模型中的屈服表面尺寸)的導(dǎo)數(shù)。
?
2、要定義的變量
yield(nblock)?: 該數(shù)組包含材料點(diǎn)處屈服應(yīng)力(各向同性塑性)或屈服面尺寸(組合硬化)。
dyieldDeqps(nblock,1)?: 該數(shù)組包含屈服應(yīng)力或屈服面尺寸相對(duì)于(關(guān)于)材料點(diǎn)處等效塑性應(yīng)變的導(dǎo)數(shù)。
dyieldDeqps(nblock,2)?: 該數(shù)組包含屈服應(yīng)力相對(duì)于材料點(diǎn)處等效塑性應(yīng)變率的導(dǎo)數(shù)。
dyieldDtemp(nblock)?: 該數(shù)組包含屈服應(yīng)力或屈服表面尺寸相對(duì)于材料點(diǎn)溫度的導(dǎo)數(shù)。該量?jī)H在絕熱和完全耦合的溫度位移分析中需要。
stateNew(nblock,nstatev)?: 該數(shù)組包含增量步結(jié)束時(shí)的材質(zhì)點(diǎn)處的狀態(tài)變量。依賴求解狀態(tài)變量(與求解過程相關(guān)的狀態(tài)變量)中描述了此陣列的分配。
?
3、傳遞信息的變量(這些變量存儲(chǔ)著信息,abaqus傳入子程序給用戶使用)
Nblock?: 本次調(diào)用VUHARD時(shí)要處理的材料點(diǎn)數(shù)。
jElem(nblock)?: 單元編號(hào)的數(shù)組。
kIntPt?: 積分點(diǎn)編號(hào)。
kLayer?:?層編號(hào)(用于復(fù)合殼)。
kSecPt?:?當(dāng)前層內(nèi)的截面點(diǎn)編號(hào)。
Lanneal?: 指示在退火過程中是否調(diào)用程序的標(biāo)志。lanneal=0表示在正常力學(xué)增量期間調(diào)用程序。lanneal=1表示這是一個(gè)退火過程,如果需要,應(yīng)重新初始化內(nèi)部狀態(tài)變量stateNew。Abaqus/Explicit將在退火過程中自動(dòng)將應(yīng)力、拉伸和狀態(tài)設(shè)置為零。
stepTime?: 自分析步開始以來的時(shí)間值(當(dāng)前分析步的時(shí)間值)。
totalTime?: 總時(shí)間值。分析步開始時(shí)的時(shí)間(時(shí)刻)由totalTime - stepTime給出。
dt?: 時(shí)間增量大小。(說明下,value of time , time的翻譯)
cmname?: 材料名稱,左對(duì)齊。它以大寫字符串的形式傳入。一些內(nèi)部材料模型的名稱以“ABQ_”字符串開頭。為了避免沖突,“ABQ_”不應(yīng)用作cmname的前導(dǎo)(前綴)字符串。
Nstatev?: 與此材料類型關(guān)聯(lián)的用戶定義狀態(tài)變量的數(shù)量(請(qǐng)參見為依賴求解狀態(tài)變量分配空間)。
Nfieldv?: 用戶定義的外部場(chǎng)變量的數(shù)量。
Nprops?: 用戶定義材料屬性的用戶指定數(shù)量(cae界面輸入的材料屬性的數(shù)量)
tempOld(nblock)?: 增量開始時(shí)材料點(diǎn)的溫度。
tempNew(nblock)?: 增量結(jié)束時(shí)材料點(diǎn)的溫度。
fieldOld(nblock,nfieldv)?: 增量開始時(shí)材料點(diǎn)處的用戶定義的場(chǎng)變量的值。
fieldNew(nblock,nfieldv)?:?增量結(jié)束時(shí)材料點(diǎn)處的用戶定義的場(chǎng)變量的值。
stateOld(nblock,nstatev)?: 在增量開始時(shí)的材料點(diǎn)處的狀態(tài)變量。
eqps(nblock)?: 材料點(diǎn)處的等效塑性應(yīng)變。
eqpsRate(nblock)?: 材料點(diǎn)處的等效塑性應(yīng)變率。
?
?
4、子程序接口
??????subroutine vuhard(
C Read only -
?????* ????nblock,
?????* ????jElem, kIntPt, kLayer, kSecPt,
?????* ????lAnneal, stepTime, totalTime, dt, cmname,
?????* ????nstatev, nfieldv, nprops,
?????* ????props, tempOld, tempNew, fieldOld, fieldNew,
?????* ????stateOld,
?????* ????eqps, eqpsRate,
C Write only -
?????* ????yield, dyieldDtemp, dyieldDeqps,
?????* ????stateNew )
C
??????include 'vaba_param.inc'
C
??????dimension props(nprops), tempOld(nblock), tempNew(nblock),
?????1 ??fieldOld(nblock,nfieldv), fieldNew(nblock,nfieldv),
?????2 ??stateOld(nblock,nstatev), eqps(nblock), eqpsRate(nblock),
?????3 ??yield(nblock), dyieldDtemp(nblock), dyieldDeqps(nblock,2),
?????4 ??stateNew(nblock,nstatev), jElem(nblock)
C
??????character*80 cmname
C
??????do 100 km = 1,nblock
????????用戶自定義代碼區(qū),主要是定義yield(nblock)。
??100 continue
C
??????return
??????End
?
?
5、案例
?



?
