
發布
注冊
/
登錄時間步長的案例
一文讀懂DYNA時間步長理論,深度解析質量縮放原理
時間步長是除了單元平衡方程之外,顯示動力學計算的最基礎最重要理論公式
在LS-DYNA中關鍵字*CONTROL_TIMESTEP用于控制求解時間步長,時間步長為每一步有限元積分的長度。計算所需時間步長時,要檢查所有的單元。最小時間步長計算公式
其中▲t是時間步長,α是時間步長縮放因子,L是單元特征長度,c是材料聲速
α(時間步長縮放因子)對應DYNA中的關鍵字TSSFAC。在DYNA官方幫助文檔中對α的解釋為:計算穩定性的考慮,TSSFAC通常設置為0.90(默認值)或者更小。為了減少求解時間,我們希望使用更大的穩定的時間步長,但大于0.90的值通常會導致不穩定。
展開 動力學時間步長選取
瞬態動力學問題求解精度取決于積分時間步長,步長越小計算精度越高。過小的步長會增加計算機的負擔,過大的步長會導致高階模態的響應出錯。因此要得到一個較好的時間步長應遵循以下原則:
1、分析響應的頻率:
時間步長應該小到可以捕捉結構的響應。對NEWMARK積分方案而言,可以使用感興趣的模態階數確定時間步長,
△t=1/(20f)
上式中,△t為時間步長,f為所感興趣的階數頻率。
如果需要計算加速度,則時間步長需要進一步減小。
2、響應一般比載荷慢半拍,階躍載荷尤其如此。需要較小的時間步長以便能夠跟蹤載荷的改變,一般1/180f較為合適。
展開 三十九、Fluent時間步長的估算與庫朗數
wx_fmt=png" width="246" style=""> </p><p><br></p><p>其中,u為流體速度;Δt為時間步長;Δx為網格尺寸;</p><p><br></p><p><span style="color: rgb(255, 129, 36);">形象點理解,u*Δt表示流體在Δt時間內流動的距離,除以網格尺寸,則表示流體在一個時間步長內流過了多少個網格。顯然一個時間步長內流過的網格越多,計算就越快,但收斂性就會越差。</span></p><p> <img src="https://mmbiz.qpic.cn/mmbiz_jpg/8tJMdLVYZy8ib5BucKKic5eRbiagsS3oXAdmuIMDR2RNXsRQrmAf9lPTt4ZwAjic4mASpdLVFLuNhn5AarricqiaJ7YA/640?wx_fmt=jpeg" width="100%"> </p><p><br></p><p>類似于人賽跑,跑得快固然很快能跑完,但也可能中間摔跟頭。</p><p><br></p><p> <img src="https://mmbiz.qpic.cn/mmbiz_jpg/8tJMdLVYZy8ib5BucKKic5eRbiagsS3oXAdZOw4xYnAcfOY2RyloWFSP67vicc5Gw8k1WUDsKv9bN3pbjRoOibkCo5A/640?wx_fmt=jpeg" width="100%"> </p><p><br></p><p>庫朗數主要受流速u、時間步長Δt和網格尺寸Δx的影響。而流速u和網格尺寸Δx主要由實際工況決定,不能人為控制,因此主要由時間步長Δt來控制庫朗數。
展開 液體靜壓導軌雙向流固耦合-關于時間步長的疑問
從圖中可以看出流場呈負壓,結構件向上凸起
我嘗試了改變時間步長,發現步0.05s時沒有出現上述狀況,可以完成迭代。而時間步長設置為0.01、0.001、0.0001、0.00001等均會出現上述問題。
我的疑問:
1.一般雙向耦合,不是時間步越小越好么,為什么這里采用0.0001s步長會出現上述問題,而0.05s卻能正確計算?
2. 我想模擬液壓油逐漸上升,止推板在油膜力的作用下逐漸彎曲的過程,是否應該考慮液壓油的可壓縮性?
因為在模擬中我發現,若將液壓油密度設置為定值,則無論時間步長多小(e-5s或e-6s),耦合面的面壓力積分總是在兩三個迭代步內就達到最大值。而若將液壓油密度設置為compressible liquid,則耦合面的面壓力積分會隨著時間逐步增大,大概在0.005s內達到最大值。
請論壇里的前輩不吝賜教~
展開 
使用隱式有限差分法求解沒有時間步長限制的問題
傳統的有限差分法需要大量的內存和計算時間。為了減少內存需求和計算時間,采用可變網格方案。此外,可以實現計算成本的降低。在數值網格的不同部分引入時間采樣不僅可以最大限度地減少計算時間,還可以優化網格大小。
根據為問題域制定的方程的性質,有限差分法分為顯式和隱式有限差分法。
區分顯式和隱式有限差分法
在有限差分法的變體中,總是使用顯式和隱式有限差分法。
顯式有限差分法
求解方程時,若直接從已知值求出某一時間層次的因變量,則構成顯式有限差分法。考慮等式:
在此等式中,時間點 (n+1) 處的 y 值取決于時間 n 處的變量 x 和時間步長 n 處的 y 函數。該等式意味著執行計算是為了使用先前時間步長的數量及時獲得前向值。這種類型的有限差分格式被稱為顯式的。
然而,在某些表達式中,向前時間步的輸出取決于它自己。隱式有限差分法用于解決此類問題。
隱式有限差分法
如果將未來時間水平的未知量用該時間水平的變量和過去、現在、未來時間的變量來表示,就形成了隱式有限差分法。
注意:隱式有限差分方程中會有不止一個未知數。
考慮等式:
這里,第 (n+1)個時間步的y取決于第 n個時間步的 x 值和第 (n+1) 個時刻的 f(y) 的函數。等式中沒有明確的關系。這需要隱式有限差分法。
使用隱式有限差分法解決問題
隱式有限差分法一般用于求解對時間步長沒有限制的問題。該方法用于求解熱傳導方程、定常和非定常無粘性和粘性可壓縮流、擴散方程、電磁問題和計算渦流尾流。
Cadence 提供了一套完整的 CFD 仿真軟件來支持您解決傳熱、流體流動和空氣動力學等物理現象。
展開 關于時間步長跟質量縮放(ADD MASS)及percentage increase 之間的關系與調整
關于時間步長跟質量縮放(ADD MASS)及percentage increase 之間的關系與調整??這個問題具體應該怎么解決??我在做翼子板覆蓋件時在計算的最后一步自動彈出,不知道是什么原因希望大家能夠解答,以下是message文件的錯誤提示,我實在沒有看出來是怎么回事??說內存??還是有什么其他的問題,在后處理中FLD圖沒有破裂: *** Error Memory is set 599296 words short
increase the memory size.
DPM|02粒子追蹤設置
Number of Steps, Step Length Factor 或 Length Scale
非定常粒子追蹤與穩態流動
在"Particle Treatment"選項下選擇"unsteady tracking of particles"功能,以啟用顆粒物的非穩態追蹤
指定DPM Iteration Interval,粒子相互作用的計算頻率,每N步計算一次粒子相互作用
每個粒子都從其在上一次離散相模型計算中的最后位置開始隨時間運動,需要定義兩個參數:
指定的particle time step size(Δtp),根據追蹤參數計算出的積分時間步長
進行J個時間步長的計算(number of time steps)
當模擬中的所有粒子都按指定時間步長運動后,流動求解器會更新流場計算,同時考慮追蹤過程中產生的任何離散相模型相關源項。
注:選擇合適的粒子時間步長至關重要,過大的數值會影響追蹤精度,而過小的數值則可能導致不必要的計算量
非定常流動中的非定常粒子追蹤
激活”updated DPM source Every Flow Source“,確保在每個流動迭代/時間步長計算并更新DPM源項
根據模擬的具體需求,將顆粒相和連續相的時間步長設置為相同或不同
粒子的注入設置
Particle Time Step:在每個粒子時間步長中注入粒子,積分時間步長是指定的粒子時間步長
Fluid Flow Time Step:在每個流動時間步長中注入粒子,積分時間步長是指定的粒子時間步長
粒子追蹤時間步長與流體流動時間步長始終一致。
展開 “Time-step size < dtmin” 問題解析
發生的原因
求解器的停止是因為時間步長小于最小時間步長。這里涉及兩個量,最小時間步長,時間步長。最小時間步長默認為 1e-4 乘以初始時間步長,其值也可通過 Time-step controls 選項去設置。(Model Setup > Numberics > Time-step control >Minimum time step)
求解器運行期間的時間步長可通過兩種方式中的一種確定。第一種,求解器設定的時間步長可滿足穩定。第二種,如果時間步長的控制設置為穩定和收斂 Stability and convergence(默認)。則壓力迭代次數大于時間步長減小前的最大迭代次數(最大迭代次數可通過 Model Setup > Numerics > Pressure iterations > Convergence Controls > Maximum number of iterations before time step is reduced 設置)會導致的時間步長會被減小。
這種做法通過平衡時間步長和壓力迭代次數去優化運行時間。然而,有時時間步長被過分地減小,于是就造成了 Time-step size < dtmin 的情況出現。
2. 建議的解決方案
首先,查看運行器中的 " stability limit & time-step size "。(同樣可以在求解文件 hd3msg.dat 中查看)如果時間步長一直小于穩定極限,求解器會一直迭代。
正常一段時間后,時間步長會主動降低,這是由于 AUTOT 設置的影響(自動恢復法)。
如果機器不能自動恢復,則需要我們自己采取一些手段。一方面,可以采取將時間步長的控制條件設置為 Stability。
展開 LS-DYNA_子循環技術(*CONTROL_SUBCYCLE)使用過程的問題
跨中最大變形
(1)模型(未設置):189.207mm
(2)模型(設置):188.203mm
計算效率對比,設置*CONTROL_SUBCYCLE后計算效率提高約6%
(1)模型(未設置):17hours5minutes30seconds
(2)模型(設置):15hours56minutes2seconds
計算時間步對比
(1)模型(未設置):初始時間步長為2.8E-7,結束時時間步長為7.57E-8
(2)模型(設置):初始時間步長為2.8E-7,結束時時間步長為7.88E-8
ANSYS Workbench非線性分析收斂曲線解讀
該模型中有兩個載荷步,分析設置中時間步長設置為“Program Contrlled”.
除了看上述的力收斂曲線圖,我們可以設置“Solution Output= Solve Output”查看計算輸出信息,從其中可以更詳細地看到收斂情況。
可以將計算輸出的信息與力收斂曲線圖對比起來看,就更容易理解力收斂圖了。
第1個載荷步中,第1個分析子步經過了15次迭代收斂(圖中每個圓點代表一次迭代)。
經過4個分析子步,第1個載荷步完成加載并收斂。第2個載荷步程序自動設置的信息如下:
初始子步數量為5,載荷步的分析時間為1s,因此初始的時間步長為0.2s。
第2個載荷步的第1個分析子步,經過25次計算迭代后,還不收斂。程序進行自動二分,將時間步長除以2,變為0.1s。
自動二分是一種用于解決非線性分析過程中收斂困難的策略。當收斂失敗發生在某個子步中,程序會自動減小時間步長,通常是前一個步長的一半左右。然后,程序會從前一個成功收斂的時間子步繼續求解。如果再次遇到收斂失敗,程序會繼續減小時間步長并繼續求解,直到達到收斂或達到指定的最小時間步長值。這種方法有助于逐步逼近正確解,并確保分析的穩定性和準確性。
第2載荷步的第4個子步中,進行了18次迭代未收斂,預測需要50次迭代,超過了程序允許的25次,再次進行二分,將時間步長改為0.05s。
在第5個子步采用0.05s的時間步長,經過3次迭代收斂了,程序認為,可以加大一點時間步長,自動改成了0.75s,增長比例為1.5。
第6個子步也只用了2次迭代就收斂了,程序繼續加大時間步長,增長1.5倍,改為0.1125s。
第7個子步用了9次迭代,程序認為可以保持時間步長。
展開 Fluent滑移網格----物理時間步長的設定【轉】
在每個時間步需要將interface節點上的流動變量進行傳遞,以實現兩個區域的流場耦合求解。這相對于網格重生成的方法來說可以節省大量的計算成本。
由于Moving Mesh法采用的是非定常方法,計算量較大,因此合理地設定物理時間步和每步的迭代步數就很重要了。前者經驗上往往設為轉速倒數的1/10,轉速單位為rad/s;后者根據需要常設在10~30之間。
在用Moving Mesh進行非定常計算之前,可以先用定場的方式計算流場,這樣可以加快收斂速度,并提高非定常計算前期輸出結果的可信度。同時還要注意旋轉域的物理量往往變化劇烈,需要較密的網格,Pressure discretization建議采用presto!格式。
PS:滑移網格計算量確實挺大,我現在做的全機帶螺旋槳的網格,旋轉域100W,固定域200W,i5-760CPU四核全開,定常計算1000步迭代耗時仍要2h40min,非定常階段耗時14h
展開 
CFD理論|庫朗數應用
因此可以看出,采用固定時間步長,雖然很簡單,但也很笨拙。
有沒有更好的方法調整時間步長呢?我們往下繼續介紹可調節時間步長。
二十九、Fluent瞬態時間步長與迭代步數的討論
wx_fmt=png"> </p><p> </p><p> </p><p><strong>3.Max Iterations/Time Step</strong></p><p> </p><p>首先,計算 unsteady flow 的時候,fluent 是從前一個時間算到下一個時間的。</p><p><br></p><p>從這個意思上來就認為是“time step”,一個時間接一個時間,而每個時間就相當于一個準穩態,因此計算的時候需要 Max Iterations per Time Step,這個就像你在計算穩態時候需要設置的一樣,在達到 iteration 次數之前收斂就完成這個 time step,否則就算到所規定的次數。</p><p><br></p><p><strong>4.Number of Time Steps</strong></p><p> </p><p>對穩態,Number of iterations表示迭代次數,一個迭代次數就會將所有的網格遍歷一遍,完成一次循環。剛開始給網格的值可能不收斂,甚至和收斂網格相差很大,所以需要多次迭代。</p><p><br></p><p>而對非穩態來說,需要定義流動時間。一共流動多少秒,由此需要知道時間間隔(time step size),在這個時間間隔內,認為是穩態流動。</p><p><br></p><p>Max Iterations per Time Step是這個時間間隔最大的迭代次數,也就是說在這個時間間隔內最多迭代完這些步,同時當迭代完這些步數之后,流動就進行了這么多的時間。
展開 CFD專欄丨三維 CFD 瞬態熱模型,物理時間超長怎么辦?
我們仍然采用3種方法對比:
第一種方法:流動和溫度同時求解,時間步長=0.1秒,總共迭代12000步;
第二種方法:將總時間分為8個片段,每個片段先計算冷態流場,時間步長=0.1秒,凍結平均流場,接著僅計算溫度場,時間步長=2秒。下個片段的初始條件來自上個片段的結果;
第三種方法:流動和溫度同時求解,時間步長=0.1秒,dual time stepping系數=20, 總共迭代600步。
1. Fully solved: 流動和溫度同時求解,時間步長=0.1秒:
2. thermal only : 凍結平均流場8次,僅計算溫度場,時間步長=2秒:
3. Dual time stepping: 流動時間步長=0.1秒,溫度時間步長=2秒:
從小立方體的平均溫度監測曲線分析:
第2種方法產生了較大的誤差,溫度上升和冷卻過程都明顯偏高。由于自然對流的流場和溫度強耦合,采用時間分段平均的方法會產生較大誤差;
第3種方法(dual stepping)非常接近第1種方法(全耦合法),節省了20倍的計算代價。
展開 關于質量縮放
顯式時間積分的最小時間步長由最小單元長度 和音速C決定(例子為二維連續體)。注意到對于一個給定的材料特性,模型中最小時間步長 是由最小單元尺寸控制的。并且,對于給定的網格,
取決于音速,它是材料性質的函數(密度、彈性模量和泊松比)。在模型中用 EDTP
命令來檢查最小時間步長。
在ANSYS/LS-DYNA程序中,可以在分析中通過包括質量縮放來控制最小時間步長。如果程序計算出時間步太小,則須用質量縮放。當要求質量縮放時,就要調整單元密度以達到用戶規定的時間步長。
在ANSYS/LS-DYNA程序中用 EDCTS
命令定義質量縮放,使用該命令時,根據給定的DTMS值而決定施加質量縮放的兩種方法之一;
·DTMS>0,所有的單元采用同樣的時間步長,質量縮放加到全部單元上。
·DTMS<0,質量縮放僅加到計算時間步長小于DTMS的單元上。
在以上兩種方法中,第二種方法更有效并建議使用。雖然質量縮放可能會輕微地增加模型質量和改變質心位置,然而所節省的CPU時間足以讓這些誤差顯得微不足道。例如,使用質量縮放,節省50%的CPU時間,而只會增加0.001%質量。必須注意,不要模型增加過多的質量,它將對慣性影響顯著。
單元計算的時間步大小乘以比例因子(通常為0.9),用戶輸入的質量縮放參數在縮放之前會影響時間步長,在質量縮放之后控制時間步長,采用 EDCTS
命令的TSSFAC參數。
展開