LS-dyna 常見問題匯總
LS-DYNA常見問題匯總
1.Consistent system of units 單位制度
相信做仿真分析的人第一個需要明確的就是一致單位系統(Consistent Units)。計算機只認識0&1、只懂得玩數字,它才不管你用的數字的物理意義。而工程師自己負責單位制的統一,否則計算出來的結果沒有意義,不幸的是大多數老師在教有限元數值計算時似乎沒有提到這一點。見下面LS-DYNA FAQ中的定義:
Definition of a consistent system of units (required for LS-DYNA):
1 force unit = 1 mass unit * 1 acceleration unit
1 力單位 = 1 質量單位 × 1 加速度單位
1 acceleration unit = 1 length unit / (1 time unit)^2
1 加速度單位 = 1 長度單位/1 時間單位的平方
The following table provides examples of consistent systems of units.
As points of reference, the mass density and Young’s Modulus of steel are provided in each system of units. “GRAVITY” is gravitational acceleration.
MASS |
LENGTH |
TIME |
FORCE |
STRESS |
ENERGY |
DENSITY |
YOUNG’s |
Velocity (56.3KMPH) |
GRAVITY |
kg |
m |
s |
N |
Pa |
Joule |
7.83E+03 |
2.07E+11 |
15.65 |
9.806 |
kg |
cm |
s |
1.e-02N |
7.83E-03 |
2.07E+09 |
1.56E+03 |
9.81E+02 |
||
kg |
cm |
ms |
1.e+04N |
7.83E-03 |
2.07E+03 |
1.56 |
9.81E-04 |
||
kg |
cm |
us |
1.e+10N |
7.83E-03 |
2.07E-03 |
1.56E-03 |
9.81E-10 |
||
kg |
mm |
ms |
KN |
GPa |
KN-mm |
7.83E-06 |
2.07E+02 |
15.65 |
9.81E-03 |
gm |
cm |
s |
dyne |
dy/cm2 |
erg |
7.83E+00 |
2.07E+12 |
1.56E+03 |
9.81E+02 |
gm |
cm |
us |
1.e+07N |
Mbar |
1.e7Ncm |
7.83E+00 |
2.07E+00 |
1.56E-03 |
9.81E-10 |
gm |
mm |
s |
1.e-06N |
Pa |
7.83E-03 |
2.07E+11 |
1.56E+04 |
9.81E+03 |
|
gm |
mm |
ms |
N |
MPa |
N-mm |
7.83E-03 |
2.07E+05 |
15.65 |
9.81E-03 |
ton |
mm |
s |
N |
MPa |
N-mm |
7.83E-09 |
2.07E+05 |
1.56E+04 |
9.81E+03 |
lbfs2/in |
in |
s |
lbf |
psi |
lbf-in |
7.33E-04 |
3.00E+07 |
6.16E+02 |
386 |
slug |
ft |
s |
lbf |
psf |
lbf-ft |
15.2 |
4.32E+09 |
51.33 |
32.17 |
kgfs2/mm |
mm |
s |
kgf |
kgf/mm2 |
kgf-mm |
8.02E-10 |
7.00E+02 |
1.56E+04 |
(
|
kg |
mm |
s |
mN |
1000Pa |
7.83E-06 |
2.07E+08 |
9.81E+02 |
||
gm |
cm |
ms |
100000Pa |
7.83E+00 |
2.07E+06 |
質量縮放指的是通過增加非物理的質量到結構上從而獲得大的顯式時間步的技術。
在一個動態分析中,任何時候增加非物理的質量來增大時間步將會影響計算結果(因為F=ma)。有時候這種影響不明顯,在這種情況下增加非物理的質量是無可非議的。比如額外的質量只增加到不是關鍵區域的很少的小單元上或者準靜態的分析(速度很小,動能相對峰值內能非常小)。總的來說,是由分析者來判斷質量縮放的影響。你可能有必要做另一個減小或消除了質量縮放的分析來估計質量增加對結果的靈敏度。
你可以通過人工有選擇的增加一個部件的材料密度來實現質量縮放。這種手動質量縮放的方法是獨立于通過設置*Control_timestep卡DT2MS項來實現的自動質量縮放。
當DT2MS設置為一個負值時,質量只是增加到時間步小于TSSFAC*|DT2MS|的單元上。通過增加這些單元的質量,它們的時間達到TSSFAC*|DT2MS|。有無數種TSSFAC和DT2MS的組合可以得到同樣的乘積,因而有相同的時間步,但是對于每一種組合增加的質量將是不一樣的。一般的趨勢是TSSFAC越小,增加的質量越多。 作為回報,當TSSFAC減小時計算穩定性增加(就像在沒有做質量縮放的求解中一樣)。 如果TSSFAC缺省的值0.9會導致穩定性問題,可以試試0.8或者0.7。 如果你減小TSSFAC,你可以相應增加|DT2MS|,這樣還是可以保證時間步乘積不變。
為了確定什么時候和位置質量自動增加了,可以輸出GLSTAT和MATSUM文件。這些文件允許你繪出完整的模型或者單獨部件所增加的質量對時間的曲線。為了得到由殼單元組成的部件增加的質量云圖,將*database_extent_binary卡的STSSZ項設置為3。 這樣你可以用ls-prepost繪出每個單元的質量增加量的云圖,具體方法是通過選擇Fcomp>Misc>time step size。
在*control_timestep中設置DT2MS正值和負值的不同之處如下:
負值:初始時間步將不會小于TSSFAC*-DT2MS。質量只是增加到時間步小于TSSFAC*|DT2MS|的單元上。當質量縮放可接受時,推薦用這種方法。用這種方法時質量增量是有限的。過多的增加質量會導致計算任務終止。
正值:初始時間將不會小于DT2MS。 單元質量會增加或者減小以保證每一個單元的時間步都一樣。這種方法盡管不會因為過多增加質量而導致計算終止,但更難以作出合理的解釋。
*control_timestep卡中的參數MS1ST控制是否只是在初始化時增加一次質量(MS1ST=1)還是任何需要維持由DT2MS所指定的時間步時都增加質量(MS1ST=0)。
你可以通過在*control_termination卡片中設置參數ENDMAS來控制當質量增加到初始質量一定比率時終止計算(只對自動質量縮放有效)
--------------------------
可變形點焊梁的質量縮放
*mat_spotweld卡的質量縮放參數DT只影響點焊單元。如果*control_timestep卡中沒有指定質量縮放(DT2MS=0),而且時間由可變形點焊控制,可以用參數DT來在初始化時增加慣量到點焊單元上來提高時間步達到DT指定的值。當DT不為0時,增加到可變形點焊梁元上的質量會輸出到d3hsp文件里。MATSUM 中動量和動能不受增加到可變形點焊上的質量的影響。GSLTAT中DOES和總的KE受增加的質量的影響。
考慮三種調用可變形點焊的質量縮放的情況:
1.當DT2MS為負值*mat_spotweld卡DT=0時,盡管在d3hsp文件中可變形點焊質量增量百分比不真實。下面幾個值是正確的:d3hsp中”added spotweld mass”; 第一個時間步之后的”added mass” & “percentage increase”; glstat和matsum中的”added mass”。
2. 當DT2MS為負值且*mat_spotweld卡DT≠0時,可變形點焊質量增加不會包含在d3hsp、glstat、matsum文件中的”added mass”里。這非常容易令人誤解。用戶必須檢查d3hsp文件的”added spotweld mass”。建議不要同時使用兩種質量縮放標準,推薦使用第一種方法(即負的DT2MS&DT=0)。
3. 如果DT2MS=0且DT≠0,初始時間步將不考慮增加點焊的質量,但是之后每一個周期時間步都會增加10%,直到時間步達到正確的值(考慮點焊質量增加)。glstat & matsum不包含”added mass”的行。
注意質量增加會引起能量比率增長。
當用顯式時間積分時,對于仿真非常小的部件而分析時間又要相當長時沒有好的方法。質量縮放(mass-scaling)增加了需要確認非物理質量的增加不會顯著影響計算結果的負擔。當使用時間縮放(time-scaling)時也有同樣的問題。時間縮放(time-scaling)是指為了減小需要的時間步數,通過增加加載速率而縮短仿真時間。
要確認時間步不是僅由很少的小單元或者剛度大單元控制,可以通過在d3hsp文件中搜索”smallest”來顯示100個最小的時間步單元。如果只有很少的幾個單元控制時間步,可以把那些單元及鄰近區域重新remesh或者把它們變成剛體。
可是僅運行必要長的時間是很明顯的。這意味著在一個跌落分析的情況時,給跌落物體一個初速度,把它放在離地面一個非常小的距離。沖擊之后,僅運行足夠得到需要的結果的時間。
值得注意的是對于一個長時間的仿真,如果時間步數超過了50萬步,最好使用雙精度版本的LS-DYNA求解器,使截斷誤差的影響最小化。運行雙精度版本要增加30%的時間。
對于長時間的分析,自動顯式/隱式轉換可能是一個選擇。使用這種方法,用戶可以指定在一個時間段內使用隱式積分。隱式積分的優點是時間步不由單元尺寸控制,所以可以得到大的時間步。當然,隱式計算也非常點用cpu時間。而且,目前并不是所有的LS-DYNA的功能和材料都在隱式分析中實現(大部分已經實現)。下面的FEA information newsletter里討論了顯式/隱式轉換(http://www.feapublications.com/pages/pdfnews/3feadec.pdf)。
動態松馳(Dynamic relaxation)并不是有意為一般的準靜態(quasi-static)分析設置的。它適合于當預載只產生小的彈情況應變的施加預載,或者初始化系統到一個預定義的幾何形狀[1]。但對其它更多情況并不適合。
你可以通過做一個常規的顯示仿真來模擬準靜態分析,通過按需要調用時間/質量縮放(time-scaling,mass-scaling)來在可接受的時間內得到結果,但這種方法是需要技巧地。你必須監測系統動能按希望的使慣性效應最小化。基本上動能相對內能應該保持在一個較小的值。時間縮放是指加載比在準靜態實驗里更快,以減少總的仿真時間。關于質量縮放更多內容可以看”mass_scaling”一節。或者你可以嘗試用LS-DYNA運行一個隱式靜力分析。可以看用戶手冊里的卡片*control_implicit_…”和Appendix M。
See also: gravity.txt, readme.preload, mass_scaling, long_run_times, implicit.general, quick_initialization.
Note[1]:初始化到預定義的幾何
1. 從第一次分析的最終狀態輸出一個節點位移文件。(這一部分未按原文翻譯)注意d3plot文件里不包含節點轉動信息,因此轉動輸出為0。這對初始化殼和梁單元會是個問題。LS-Prepost有一個選項是輸出節點位移,在Output->Nodal Displacements里。但是這個輸出是i8,3e16格式的,但需要的是i8,3e15,所以要注意修改一下。
如果你做了一個正常的動態松馳分析來得到初始狀態,一個預定義位移和轉動的drdisp.sif文件在DR階段結束時會自動創建。
2. 在第二次分析時,快速的初始化到第一步輸出的預定義的幾何。你需要設置卡片*control_dynamic_relaxation里的參數IDRFLG=2,而且在命令行里指定”m=filename”(其中filename指第一步創建的文件)。這樣在瞬態分析之前,LS-DYNA會自動做一個100步的預分析來使節點根據文件filename指定的數據移動到指定值。
一些表示計算不穩定的消息如:
“out-of-range velocities” 速度超出范圍
“negative volume in brick element” 體單元負體積
“termination due to mass increase” 因質量增加而終止
用來克服顯式求解中的不穩定的方法如下:
首先(也是最重要的)是使用可獲得的最新的LS-DYNA版本。最新的執行塊可以從ftp://user@ftp.lstc.com上下載(注:前提是你有訪問權限)。聯系LSTC獲得user帳號的密碼。最新的BETA版執行塊可以在ftp://ftp.lstc.com/outgoing/ls971上找到(不需要密碼,但lstc公司對ftp訪問有IP限制)。
其次是增加d3plot的輸出頻率到可以顯示出不穩定的出現過程。這可以提供導致不穩定性發生的線索。
其它的不些解決數值不穩定性的技巧:
* 試著用雙精度LS-DYNA版本運行一次
* 試著減小時間步(timestep)縮放系數(即使使用了質量縮放mass-scaling)
* 單元類型和/或沙漏(hourglass)控制。對出現不穩定的減縮體和殼單元,試著用沙漏控制type 4 和沙漏系數0.05
。或者試著用類型16的殼單元,沙漏控制type 8。如果殼響應主要是彈性,設置BWC=1 和 PROJ=1 (僅對B-T殼)。
避免使用type=2體單元。對體單元部件,在厚度方向最少用兩個體單元。
* 接觸。設置接觸的bucket sorts之間周期數為0,這樣會使用缺省的分類間隔。如果參與接觸的兩個部件的相對速
度異常的大,可能需要減小bucket sort的間隔(比如減小到5,2甚至1)。
如果仿真過程中有明顯的接觸穿透出現,轉換到使用*contact_automatic_surface_to_surface或者
*contact_automatic_single_surface,并設置SOFT=1。 確保幾何考慮了殼單元的厚度。如果殼非常薄,比如小于1mm,放大或者設置接觸厚度到一個更加合理的值。
* 避免冗余的接觸定義,也就是說不要對同樣的兩個部件定義多于一個的接觸對。
* 查找出現不穩定的部件的材料定義中的錯誤(比如誤輸入,不一致的單位系統等)
* 關掉所有的*damping
這些技巧是一些通用的方法,可能并不適合于所有的情況。
泡沫材料的負體積(或其它軟的材料)
對于承受很大變形的材料,比如說泡沫,一個單元可能變得非常扭曲以至于單元的體積計算得到一個負值。這可能發生在材料還沒有達到失效標準前。對一個拉格朗日(Lagrangian)網格在沒有采取網格光滑(mesh smoothing)或者重劃分(remeshing)時能適應多大變形有個內在的限制。LS-DYNA中計算得到負體積(negative volume)會導致計算終止,除非在*control_timestep卡里面設置ERODE選項為1,而且在*control_termination里設置DTMIN項為任何非零的值,在這種情況下,出現負體積的單元會被刪掉而且計算繼續進行(大多數情況)。有時即使ERODE和DTMIN換上面說的設置了,負體積可能還是會導致因錯誤終止。
有助于克服負體積的一些方法如下:
* 簡單的把材料應力-應變曲線在大應變時硬化。這種方法會非常有效。
* 有時候修改初始網格來適應特定的變形場將阻止負體積的形成。此外,負體積通常只對非常嚴重的變形情況是個問題,而且特別是僅發生在像泡沫這樣的軟的材料上面。
* 減小時間步縮放系數(timestep scale factor)。缺省的0.9可能不足以防止數值不穩定。
* 避免用全積分的體單元(單元類型2和3),它們在包含大變形和扭曲的仿真中往往不是很穩定。全積分單元在大變形的時候魯棒性不如單點積分單元,因為單元的一個積分點可能出現負的Jacobian而整個單元還維持正的體積。在計算中用全積分單元因計算出現負的Jacobian而終止會比單元積分單元來得快。
* 用缺省的單元方程(單點積分體單元)和類型4或者5的沙漏(hourglass)控制(將會剛化響應)。對泡沫材料首先的沙漏方程是:如果低速沖擊type 6,系數1.0; 高速沖擊type 2或者3。
* 對泡沫用四面體(tetrahedral)單元來建模,使用類型10體單元。
* 增加DAMP參數(foam model 57)到最大的推薦值0.5。
* 對包含泡沫的接觸,用*contact選項卡B來關掉shooting node logic。
* 使用*contact_interior卡
用part set來定義需要用contact_interior來處理的parts,在set_part卡1的第5項DA4來定義contact_interior類型。缺省類型是1,推薦用于單一的壓縮。在版本970里,類型1的體單元可以設置type=2,這樣可以處理壓縮和減切混合的模式。
* 如果用mat_126,嘗試ELFORM=0
* 嘗試用EFG方程(*section_solid_EFG)。因為這個方程非常費時,所以只用在變形嚴重的地方,而且只用于六面體單元。
GLSTAT(參見*database_glstat)文件中報告的總能量是下面幾種能量的和:
內能 internal energy
動能 kinetic energy
接觸(滑移)能 contact(sliding) energy
沙漏能 houglass energy
系統阻尼能 system damping energy
剛性墻能量 rigidwall energy
GLSTAT中報告的彈簧阻尼能”Spring and damper energy”是離散單元(discrete elements)、安全帶單元
(seatbelt elements)內能及和鉸鏈剛度相關的內能(*constrained_joint_stiffness…)之和。而內能”Internal Energy”包含彈簧阻尼能”Spring and damper energy”和所有其它單元的內能。 因此彈簧阻尼能”Spring and damper energy”是內能”Internal energy”的子集。
由SMP 5434a版輸出到glstat文件中的鉸鏈內能”joint internal energy”跟*constrained_joing_stiffness不相關。它似乎與*constrained_joint_revolute(_spherical,etc)的罰值剛度相關連。這是SMP 5434a之前版本都存在的缺失的能量項,對MPP 5434a也一樣。這種現象在用拉格朗日乘子(Lagrange Multiplier)方程時不會出現。
與*constrained_joint_stiffness相關的能量出現在jntforc文件中,也包含在glstat文件中的彈簧和阻尼能和內能中。回想彈簧阻尼能”spring and damper energy”,不管是從鉸鏈剛度還是從離散單元而來,總是包含在內能里面。
在MATSUM文件中能量值是按一個part一個part的輸出的(參見*database_matsum)。
沙漏能Hourglass energy僅當在卡片*control_energy中設置HGEN項為2時才計算和輸出。同樣,剛性墻能和阻尼能僅當上面的卡片中RWEN和RYLEN分別設置為2時才會計算和輸出。剛性阻尼能集中到內能里面。質量阻尼能以單獨的行”system damping energy”出現。由于殼的體積粘性(bulk viscosity)而產生的能量耗散(energy dissipated)在版本970.4748之前是不計算的。在后續子版本中,設置TYPE=-2來在能量平衡中包含它。
最理想的情況下能量平衡:
總能量total energy = 初始總能量 + 外力功external work
換句話說,如果能量比率energy ratio(指的是glstat中的total energy/initial energy,實際上是total energy/(initial energy + external work)) 等于1.0。注意,質量縮放而增加質量可能會導致能量比率增加。
注意在LSprepost的History>Global energies中不包含刪掉的單元(eroded elements)的能量貢獻,然而GLSTAT文件中的能量包含了它們。注意它們的貢獻可以通過ASCII>glstat中的”Eroded Kinetic Energy”& “Eroded Internal Energy”來繪制。侵蝕能量(Eroded energy)是與刪掉的單元相關的內能和刪掉的節點相關的動能。 典型來說,如果沒有單元刪掉”energy ratio w/o eroded energy”等于1,如果有單元被刪掉則小于1。刪掉的單元與”total energy/initial energy”比率沒有關系。總能量比率增加要歸于其它原因,比如增加質量。重述一下,將一個單元刪掉時,文件glstat中的內能和動能不會反映能量的丟失。取而代之的是能量的丟失記錄在glstat文件的”eroded internal energy” & “eroded kinetic energy”中。 如果用內能減去”eroded internal energy”將得到分析中還存在的單元的內能。對動能也一樣。
matsum文件中的內能和動能只包含余下(noneroded)的單元的貢獻。
注意,如果在*control_contact卡中將ENMASS設置為2,則與刪掉的單元的相關的節點不會刪掉,”eroded kinetic energy”是0。
在LSprepost中History>Global 只是動能和內能的簡單相加,因此不包含接觸能和沙漏能等的貢獻。
殼的負內能:為了克服這種不真實的效應
--關掉考慮殼的減薄(ISTUPD in *control_shell)
--調用殼的體積粘性(set TYPE=-2 在*control_bulk_viscosity卡中)
--對在matsum文件中顯示為負的內能的parts使用*damping_part_stiffness;
先試著用一個小的值,比如0.01。如果在*control_energy中設置RYLEN=2,因為剛性阻尼而能會計算且包含在內能中。
正的接觸能:當在接觸定義中考慮了摩擦時將得到正的接觸能。摩擦將導致正的接觸能。如果沒有設置接觸阻尼和接觸摩擦系數,你將會看到凈接觸能為零或者一個很小的值(凈接觸能=從邊和主邊能量和)。 所說的小是根據判斷-在沒有接觸摩擦系數時,接觸能為峰值內能的10%內可以被認為是可接受的。
負的接觸能:突然增加的負接觸能可能是由于未檢測到的初始穿透造成的。在定義初始幾何時考慮殼的厚度偏置通常是最有效的減小負接觸能的步驟。查閱LS-DYNA理論手冊的23.8.3&23.8.4節可得到更多接觸能的信息。
負接觸能有時候因為parts之間的相對滑動而產生。這跟摩擦沒有關系,這里說的負接觸能從法向接觸力和法向穿透產生。當一個穿透的節點從它原來的主面滑動到臨近的沒有連接的主面時,如果穿透突然檢測到,則產生負的接觸能。
如果內能為負接觸能的鏡像,例如glstat文件中內能曲線梯度與負接觸能曲線梯度值相等,問題可能是非常局部化的,對整體求解正確性沖擊較小。你可以在LS-prepost中分離出有問題的區域,通繪制殼單元部件內能云圖(Fcomp > Misc > Internal energy)。實際上,顯示的是內能密度,比如內能/體積。內能密度云圖中的熱點通常表示著負的接觸能集中于那里。
如果有多于一個的接觸定義,sleout文件(*database_sleout)將報告每一個接觸對的接觸能量,因此縮小了研究負接觸能集中處的范圍。
克服負接觸能的一般的建議如下:
-消除初始穿透(initial penetration)。(在message文件中查找”warning”)
-檢查和排除冗余的接觸條件。不應該在相同的兩個parts之間定義多于一個的接觸。
-減小時間步縮放系數
-設置接觸控制參數到缺省值,SOFT=1 & IGNORE=1除外(接觸定義選項卡C)
-對帶有尖的邊的接觸面,設置SOFT=2(僅用于segment-to-segment接觸)。而且,在版本970中推薦設置SBOPT(之前的EDGE)為4對于部件之間有相對滑移的SOFT=2的接觸。為了改進edge-to-edge SOFT=2接觸行為,設置DEPTH=5。請注意SOFT=2接觸增加了額外的計算開消,尤其是當SBOPT或者DEPTH不是缺省值時,因此應該僅在其它接觸選項(SOFT=0或者SOFT=1)不能解決問題時。模型的細節可能會指示可用其它的一些方法。
沙漏(hourglass)模式是一種非物理的零能變形模式,產生零應變和應力。沙漏模式僅發生在減縮積分(單積分點)體、殼和厚殼單元上。LS-DYNA里面有多種算法用于抑制沙漏模式。缺省的算法(type 1)通常不是最有效的算法,但卻是最經濟的。
一種完全消除沙漏的方法是轉換到全積分或者選擇減縮積分(S/R)方程的單元。但這種方法是一種下策。例如,第一,類型2體單元比缺省的單點積分體單元計算開消大; 其二,在大變形應用時更不穩定(更容易出現負體積);其三,類型2體單元當單元形狀比較差時在一些應用中會趨向于剪切鎖死(shear-lock),因而表現得過于剛硬。
三角形殼和四面體單元沒有沙漏模式,但缺點是在許多應用中被認為過于剛硬。
減小沙漏的一個好的方法是細化網格,但這當然并不總是現實的。
加載方式會影響沙漏程度。施加壓力載荷優于在單點上加載,因為后者更容易激起沙漏模式。
為了評估沙漏能,在*control_energy卡片中設置HGEN=2,而且用*database_glstat和*database_matsum卡分別輸出系統和每一個部件的沙漏能。這一點是要確認非物理的沙漏能相對于每一個part的峰值內能要小(經驗上來說<10%)。對于殼單元,可以繪制出沙漏能密度云圖,但事先在*database_extent_binary卡中設置SHGE=2。然后在LS-Prepost中選擇Fcomp>Misc>hourglass energy。
對于流體部件,缺省的沙漏系數通常是不合適的(太高)。因此對于流體,沙漏系數通常要縮小一到兩個數量級。對流體用基于粘性的沙漏控制。缺省的沙漏方程(type 1)對流體通常是可以的。
對于結構部件一般來說基于剛性的沙漏控制(type 4,5)比粘性沙漏控制更有效。通常,當使用剛性沙漏控制時,習慣于減小沙漏系數到0.03~0.05的范圍,這樣最小化非物理的硬化響應同時又有效抑制沙漏模式。對于高速沖擊,即使對于固體結構部件,推薦采用基于粘性的沙漏控制(type 1,2,3)。
粘性沙漏控制僅僅是抑制沙漏模式的進一步發展,剛性沙漏控制將使單元朝未變形的方向變形。
類型8沙漏控制僅用于單元類型16的殼。這種沙漏類型激活了16號殼的翹曲剛度,因此單元的翹曲不會使解退化。如果使用沙漏控制8,16號殼單元可以用于解被稱為扭曲梁(Twisted Beam)問題。
對于單元類型1的體和減縮積分2D體(shell types 13 & 15)類型6沙漏控制調用了一種假設應變協同轉動方程。使用沙漏控制類型6和系數1.0,一個彈性部件在厚度方向僅僅需要劃分一層類型1的體單元就可以獲得正確的彎曲剛度。在隱式計算里面,對于類型1的體單元應該總是使用類型6的沙漏控制(實際上,在V970里面這是自動設置的)。
(More on type 6 HG control from Lee Bindeman)
類型6的沙漏控制與類型4,5不在于它用了一個假設應變場和材料屬性來估算出假設應力場。這個應力在單元封閉域內進行積分得到沙漏力,因此單元表現的像一個有同樣假設應變場的全積分單元。這種假設應變場設計成用來阻止純彎曲中不真實的剪切變形和近似不可壓材料中的體積鎖死。
類型4和5的沙漏控制基于單元體積,波速和密度像在LS-DYNA理論手冊中方程3.21那樣來計算沙漏剛度。
沙漏類型6主要的改進是應力場在單元域內積分。這使得當使用大的長細比或者歪斜形狀的體單元時沙漏控制非常魯棒。類型4和5的沙漏控制對大長細比和歪斜形狀單元反應變不好,它趨向于對某些沙漏模式反應的過于剛硬而對其它模式反應得過弱。
沙漏控制類型6另一個理論上的優點是對在厚度方向只有一個單元的梁可以在彈性彎曲問題中得到準確的解。要做到這一點,設置沙漏剛度參數為1.0。同樣,對彈性材料方形截面桿的扭曲問題,當沙漏系數設為1.0時可以用很少的單元來解。然而,對于非線性材料,用粗糙的網格得到好的結果是不可能的,因為應力場不是像沙漏類型6假設的那樣線性變化的。在梁厚度方向上如果沒有更多積分點的話,沒有辦法捕獲應力場的非線性狀態。
對于選擇沙漏控制,下面幾個問題要考慮。對于單元有大的長細比或者明顯歪斜(不管是初始還是變形過程中),推薦采用類型6的沙漏控制。類型6的沙漏控制通常對軟的材料更好,像泡沫或蜂窩材料在計算中會有非常明顯的變形。
在材料不是特別軟或者單元有合理的形狀且網格不是太粗糙時,類型4,5和6沙漏控制似乎都能得到同樣的結果。這種情況推薦用類型4的沙漏控制,因為它比其它的更快。
類型6的沙漏控制在LS-DYNA User’s Manual中參考的Belytschko和Bindeman的論文中有更詳細的描述。
在LS-DYNA中阻尼完全是可選的,通過使用一個*DAMPING卡片來調用。應該知道能量可以通過其它的非*DAMPING的方式耗散,比如,因為沙漏力產生的能量,剛性墻的力產生的能量,接觸摩擦力產生的能量,離散阻尼產生的內能等。
有時候,接觸力可能將噪聲引入到響應里。在這種情況下,通過*CONTACT卡第二張卡的VDC參數來增加粘性阻尼,從而幫助減小噪聲。VDC以臨界阻尼的百分比輸入,典型的值是10到20。
*DAMPING卡片概覽:
LS-DYNA中的質量阻尼(Mass damping)包括*damping_global & *damping_part_mass,是用于抑止低頻的結構振動模式,但此外它有抑制剛體模式的效應。因此對經受明顯剛體運動的部件,應該要么從質量阻尼中排除或者在部件經歷大的剛體運動期間關掉質量阻尼;或者使用*damping_relative來替代。通過使用*damping_relative,僅僅相對指定剛體的運動/振動被抑制。
在質量阻尼情況下臨界阻尼系數是4*pi/T,其中T是要抑制的模態的周期(通常是最低階(基頻)模態)。周期可以通過特征值分析(eigenvalue)或者從一個無阻尼的瞬態分析結果來估計。如果選擇使用質量阻尼,建議使用小于臨界阻尼系數的阻尼值。取10%的臨界阻尼的值,即輸入0.4*pi/T,是相當典型的值。可以選擇用同樣的阻尼系數抑制所有的部件(*damping_global)或者對每一個部件指定不同的阻尼系數(*damping_part_mass)。在任何一種情況下,阻尼系數可能會隨時間變化(在仿真中間關掉或打開阻尼時會有用)。
*damping_part_stiffness是為了抑制高頻振動和數值振蕩,通常對結構振動沒有明顯的影響。這種情況下阻尼系數COEF近似表示臨界阻尼的一個系數。典型的COEF值是0.1。如果使用剛性阻尼產生不穩定,消除阻尼或者減小COEF的值來使回復穩定(也許降低一個數量級或者在某些情況下更多)。
質量和剛性阻尼在隱式瞬態分析中都實現了。
在版本970中另一個可選的阻尼是頻率不相關的阻尼選項,它的目標是抑制一個范圍的頻率和一批部件(*damping_frequency_range)。Damping_frequency_range是由Arup的Richard Sturt開發的,它的理論細節是私有的。它開發的意圖是幫助LS-DYNA來適當地處理振動預測問題中的阻尼--包括車輛NVH時間歷程分析,某些地震問題和土木結構的振動問題。
*damping_frequency_range的關鍵點在于:
-僅使用很小的阻尼,例如1%到2%
-處理阻尼將輕微的減小了響應的剛度,那是因為阻尼力的應力滯后于理論上正確的阻尼力,由于需要估計頻率內容。
-用戶指定的頻率范圍最理想情況是不要超過最高值和最低值之間30%。在這個范圍之外同樣可以獲得阻尼,但阻尼值會減小。這種阻尼是基于節點速度的,所以可能會由于結構模態或者剛體轉動而有振蕩。
在Rayleigh阻尼里,阻尼矩陣表達為質量和剛度矩陣的線性組合
C = alpah*M + beta*K
LS-DYNA為標準的非線性分析在單元級實現Rayleigh阻尼。這是為了數值上的方便,因為在顯式方法里不需要生成剛度矩陣K。取而代之,通過簡單的將應力在單元面積上積分得到內力。Rayleigh阻尼作為這個應力的一個修正而實現。
版本960中的剛性阻尼(stiffness damping)完全重新實現,即使這樣可以在960中提供COEF值,這個值與950中的BETA值是相符的,其中:COEF=BETA*(w/2)
版本950和960中的剛性阻尼不完全相同。在960中剛性阻尼方程在高頻域提供一個近似的臨界阻尼分數。方程的詳細信息是不公開的。這個方程中的變化是因為使用舊版本方程時產生不穩定的頻率而促使的。在版本970的3510子版本(或者更高)中,舊的950版本的剛性阻尼方程作為一個選項提供,通過設置COEF值為負值來調用。這個參數之后被解釋成V950用戶手冊中所指的BETA值。
10.ASCII output for MPP via binout
從970版本開始,有了二進制格式格式的所謂的ASCII output文件(matsum,rcforc,etc.)。--注單機版和smp版輸出的為文本格式的ASCII output文件。
MPP-DYNA 不是直接寫出ASCII輸出文件,而是輸出二進制格式數據。這些數據可以有兩種格式:dbout(參見V.970用戶手冊Appendix L,P.L3)和binout。MPP缺省情況下會輸出binout格式的數據。卡片*database_matsum,*database_rcforc,etc的第二個參數控制輸出哪一種類型的數據。
1= old format,例如,ASCII文件(SMP) 或者 dbout文件(MPP)
2= new binout格式(對MPP版這是缺省的)
3= both formats都輸出
LS-Prepost可以直接讀取binout數據而不需要轉換,但dbout文件需要用dumpbdb來轉換成ASCII格式輸出。 在LS-Prepost里,選項頁”2″(啟動界面右邊的Group按鈕下面),在CFD按鈕下面有“Binout”按鈕。點擊之后在左下面出現的子面板中點擊“Load”按鈕,選擇求解器輸出的binout文件。之后可以進行相關曲線的繪制。(此處修改原文部分)
作為lsda軟件包的一部分,有兩個程序可以獲得(以用戶賬號登陸lstc ftp site,在”lsda”目錄下)。一個是”l2a”,它可以用來從binout文件中提取不同的ascii文件。另一個是”ioq”,它是讓你用來直接讀取/瀏覽binout文件的小工具。
通常一個”l2a”執行塊會包含在相應平臺的MPP執行塊的壓縮包里,但你也可以用那個l2a來操作任何ls-dyna執行塊(MPP or SMP)產生的binout文件。要從binout文件中提取ASCII輸出文件,在命令行執行l2a,后面包含binout文件的名字。例如:”./l2a binout.0000″
Binout文件是平臺無關的,例如,你可以在與輸出binout數據的平臺同一平臺或者任何其它平臺下處理binout數據。
當MPP LS-DYNA執行塊輸出binout數據時,將會有多于一個的文件以”binout”作為根名字。每一個這樣的文件需要被獨立的打開來得到所有需要的數據。在d3hsp文件里,你可以看到像如下的部分所示的信息告許你每一個binout文件包含哪些數據。
>The following binary output file are being created,
>and contain data equivalent to the indicated ascii output files
> binout0000:(on processor 0)
> nodout
> matsum
> rcforc
> abstat
> rbdout
> sleout
> jntforc (type 0)
> binout0001:(on processor 1)
> jntforc
> binout0003:(on processor 3)
> deforc
對MPP可選的控制輸出格式的方法(from Jason):
如果你在pfile中輸入如下行
pfile:
gen {dboutonly}
to execute:
mpirun -np ## mpp970 i=… p=pfile
程序將像之前一樣輸出dbout.*文件(沒有binout),之后你可以用dumpbdb來提取所有的ASCII文件。
這里提供LS-DYNA接觸的一些簡要信息。討論不包含所有的接觸類型的接觸選項。更詳細的LS-DYNA的接觸回顧可以在www.feapublicatoins.com上找到FEA Information Newsletters中關于接觸模型的由四個部分組成的系列文章。這一系列文章的四部分分別在2001年的8,9,10,12月份的新聞信里。
Automatic vs. Non-automatic:
對大多數顯式分析推薦用自動接觸類型。非自動接觸類型(接觸方向是重要的情況)有時用于金屬成型仿真,其中幾何是非常直接的且接觸面的方向在分析之間可以可靠的確定。非自動接觸通常推薦用于隱式分析。
類型:
Type 13接觸(contact_automatic_single_surface)是一種單面接觸(不需要定義主面),總是考慮殼的厚度且沒有方向性。因而參與接觸的板殼面在建模的時候需要至少保持一個小的間隙。為了避免初始穿透,間隙不能小于潛在會發生接觸的兩個殼之間厚度的平均值。體單元之間不需要有間隙。接觸類型13的接觸搜索算法比接觸類型3(contact_surface_to_surface)或者接觸類型a3(contact_automatic_surface_to_surface)更加復雜。例如,type13可以處理例如殼邊對面,梁對殼面的情況。和任何其它單面接觸類型一樣,接觸力不是直接從RCFORC文件中獲取,你必需要定義contact_force_transducer_penalty來獲取接觸力。文章”contact.13vs26″提供了關于contact_automatic_single_surface 和contact_automatic_general對比的一些額外信息。(之后會貼出,敬請等待)
Type 3接觸(contact_surface_to_surface)是雙向的面對面接觸,其中殼的厚度考慮選項可以通過*contact或者*control_contact(*contact優先)卡片打開或者關閉。接觸片的方向是很重要的,因為這種接觸類型只在一個方向來檢測潛在的接觸。
在如面對面的一個雙向接觸中,先檢測從面側的節點對主面的穿透,然后再檢測主面側的節點對從面的穿透。這種方法當用用設置SOFT=2來調用segment-based接觸時會有例外。
接觸類型a3沒有方向性(從殼的中面檢測任一側的潛在接觸)而且總是考慮殼厚度,從這一點考慮它非常類似于type 13的接觸。
接觸參數的一些摘記:
SOFT
SOFT是*contact選項卡A的第一個參數。SOFT的缺省值是0。SOFT=1除了在確定接觸剛度方面之外與SOFT=0差不多是一樣的。SOFT=2與SOFT=0根本上是不一樣的,不但在確定接觸剛度方法上,而且在搜索穿透的產生的方法上也不一樣。SOFT=2會調用所謂的”segment-based contact”。對于SOFT=1 & 2接觸的摘記可以分別參考文章”contact.soft1″ & “contact.soft2″。(稍后推出,敬請期待)
IGNORE
在仿真分析中的任何一個時間點,如果一個節點突然檢測到在面下面(比如說,節點運動的非常快,穿透之前沒有檢測到),原來的(IGNORE=0)算法僅僅是把節點移動到主面上,不施加任何力(稱之為”shooting node logic”)。如果shooting node logic選項被關掉(SNLOG=1),會突然出現一個相當大的力,而且產生負的接觸能。如果IGNORE設置為1,這樣shooting node logic標志SNLOG沒有作用。相當于突然的穿透被留意到而且通過局部的調整接觸厚度來補償。因此在任何分析的時間點,如果檢測到突然的穿透,程序不會施加任何很大的力也不會移動任何節點。但接觸力會阻止進一步的穿透。
通過在*Contact卡的選項卡A中設置Soft=1所調用接觸方程與缺省的罰函數接觸方程的區別不如Soft=2接觸算法大。除了在確定接觸剛度方面不一樣外,Soft=1和Soft=0是差不多的。Soft=1方法基于考慮穩定性的時間步來計算接觸剛度。換句話說,你可以把soft=1的接觸看作是一組簡單彈簧質量系統,其中每一個都有與實際仿真分析中用到的時間步相匹配的Courant 時間步。對軟材料與剛硬材料的接觸或兩個接觸面的網格密度不一致情況,Soft=1通常比Soft=0更有效。
當Soft=1時,采用通過soft=0 & soft=1計算得到的最大的剛度值。因此如果soft=0剛度更大,減小SOFSCL將沒有效果。
K = max(SLSFAC*SFS*k0, SOFSCL*k1)
其中:
k 是罰剛度
SLSFAC是用戶在*Control_contact中輸入的選項
SFS 是用戶在*Contact卡3中輸入的選項
SOFSCL 是用戶在*Contact選項卡A中輸入的值
k0 是從材料體積模量和單元尺寸計算得到的剛度
k1 是從節點質量和計算時間步計算得到的剛度
注意:對于雙面接觸,像*contact_automatic_surface_to_surface,在上面的方程中用SFM替換SFS(在*contact卡3中輸入)
English Version:
The contact formulation invoked by setting Soft=1 on optional card A of *contact is not so radical a departure from the default penalty contact formulation (Soft=0) as the Soft=2 contact formulation. Soft=1 is more or less the same as Soft=0 EXCEPT in the way the contact stiffness is determined. Soft=1 calculates contact stiffness based on stability considerations taking into account the timestep. In other words, you can liken Soft=1 contact to a group of simple spring-mass systems, each with a Courant timestep matched to the actual timestep used in the simulation. Soft=1 will generally be more effective than Soft=0 for soft materials contacting stiff materials or where the mesh densities of the two contacting surfaces are dissimilar.
When SOFT=1, we use the max of the stiffness as calculated by soft=0 and soft=1. Therefore reducing SOFSCL has no effect if the soft=0 stiffness is larger.
k = max(SLSFAC*SFS*k0, SOFSCL*k1)
where k is the penalty stiffness SLSFAC is user input on *CONTROL_CONTACT SFS is user input on *CONTACT card 3 SOFSCL is user input on *CONTACT optional card A k0 is the stiffness calculated from material bulk modulus and element dimensions k1 is the stiffness calculated from nodal masses and the solution time step.
Note: For two way contact like *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE, replace SFS with SFM (user input on *CONTACT card 3) in the above equation.
在LS-DYNA中夾層板(sandwich plate)通常有三種方式來模擬
1. 采用幾層體單元來模擬,當板比較薄,沿厚度方向單元尺寸比較小,時間步很難提高,
2. 中間的夾層材料用體單元模擬,外面的包層材料用shell單元模擬,在體單元和殼單元之間用Contact_tied (_offset)卡建立粘接關系,
3. 用一層殼單元來模擬。對材料*Mat_composite_damage和*mat_enhanced_composite_damage打開層板理論選項(*control_shell卡LAMSHT項設置為1)
對最后一種方式,需要定義*intergration_shell卡片。例如下面這個層合板:

*INTEGRATION_SHELL
1,8,0
-.9722, .02778, 1
-.9167, .02778, 1
-.6667, .22222, 2
-.2222, .22222, 2
.2222, .22222, 2
.6667, .22222, 2
.9167, .02778, 3
.9722, .02778, 3
*PART
material
1 1 11
*PART
material
2 1 12
*PART
material
3 1 11
*SECTION_SHELL
1 2 0.0000000 8.0000000 0.00000 -1.000000 0
18.000000 18.000000 18.000000 18.000000 0.0000000
*mat_composite_damage
11, 2.7e-6, 73.4, 73.4, 73.4, 0.32, 0.32, 0.32
27.8, 27.8, 27.8
1.e9, 1.e9, 1.e9, 1.e9
*mat_composite_damage
12, 6.3e-7, 0.286, 0.286, 0.286, .3, .3, .3
0.11, 0.11, 0.11
1.e9, 1.e9, 1.e9, 1.e9
--------------------------------
其中*intergration_shell卡片中第一項S表示板厚度方向積分點的規一化坐標值,從-1到
1。
積分點規一化坐標=(積分點全局Z坐標-中面Z坐標)/(thickness/2)
第二項WF(Weighting factors)為與積分點關聯的厚度與整個板厚度的比值,WF和應該為1
。第三項指向各層對應的part ID號,這個part ID號僅用來指定這一層的材料。
完整的一個實例如下:shell8lam22.rar
在LS-DYNA中可以通過卡片*Control_implicit_general的選項imflag指定為一個負值(這個負值的絕對值為一條*define_curve ID),來自動實現在指定的時間內作隱式或顯式分析。
這里的例子為一個一端固定平板,另一端施加從0-0.01秒從0增加到10.0的力,之后釋放。曲線ID3 指定從0-0.01秒內用隱式計算,增量步為20步。之后自動轉為顯式繼續求解。
下載input deck-》implicit_explicit_switchk.txt
注意請用5434,5434a or 971版本運行上面的k文件,不要用6763單精度或者雙精度版本(這兩個版本在implicit求解方面似乎存在bug,隱式分析部分無法完成 )
14.1 二次開發的過程和需要的文件
在回答這個問題前,給大家一點背景知識(針對vwindows平臺):
1、DYNA只是一個求解器(一個固定的可執行的exe文件),它可以讀取K文件,并進行計算,最終輸出結果。
2、DYNA開發過程:
編譯 連接
DYNA源代碼---->DYNA.OBJ文件或DYNA.lib————>DYNA.exe
如果進行二次開發,實際上就是要修改原有的exe文件,在其中加入自己的程序(子材料什么的)。而不管你是“一般用戶”還是正版用戶,都不太可能直接修改exe文件(除非你特別特別牛,能直接編寫機器語言(比匯編語言還低一級別),開個玩笑,基本不可能實現)。所以目前DYNA開發商,給正版用戶提供了下面的方式進行二次開發:
編譯 連接
自定義程序代碼(F文件)————>OBJ文件 + DYNA.lib————>新的DYNA.exe文件(其中包含自定義的部分)
從上面可以看出二次開發實際上是重新生成了一個全新的可執行程序,這一過程需要F文件、 DYNA.lib和其它資源文件,而不需要原來的DYNA.EXE文件,所以不管你是正版還是別的,如果沒有DYNA.lib文件等都是不可能進行二次開發的。而“一般用戶 ”和正版用戶的區別在于:
1、正版用戶可以直接要求開發商提供F文件、 DYNA.lib和其它資源文件,而一般用戶只有通過其它渠道。
2、將K文件提交DYNA.EXE計算時,正版用戶由于有license ,可以直接通過檢查并進行計算;而“一般用戶”目前基本上是通過修改 DYNA.exe文件。跳過檢查,最終實現計算的。
一般用戶”要實現二次開發就必需首先有F文件、 DYNA.lib和其它資源文件;通過編譯連接后生成新的EXE文件;再修改EXE文件,跳過license檢查(這個網上有說明具體過程,所以關鍵是要得到那幾個二次開發文件)。
“一般用戶”完全有可能進行二次開發,關鍵是要通過其它渠道得到正版用戶才有的F文件、DYNA.lib和其它資源文件
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















