不知火舞的被虐|伊人天伊人天天综合网|博洛尼亚天气|任你懆这里只有精品4|久久美日韩精品久久|掌中之物漫画免费阅读观看|0丨d老妇

loop的案例

CATIA UDF之陣列復制Loop
前面已經給大家詳細的講述了UDF的創建方法,通過UDF可以大大減少我們重復建模的次數和時間,但是如何將UDF進行批量的復制則需要我們用到另外一種命令Loop來實現。例如下面這個實例,在螺旋線上均勻分布了35個球體,而且從上至下球體的大小逐漸增大;顯然通過UDF可以實現不同位置的單個球,但是要一次實現所有的球陣列復制出來,就需要我們結合Loop的命令實現,本文將詳細介紹Loop的創建過程。 Step 1 : 首先創建需要用到的參數:Number(控制球體的個數),Ratio(球體在曲線的位置),R(球體的半徑) 創建輸入幾何圖形: 螺旋線 創建輸出的UDF幾何圖形:點(點在曲線上),球面(點和半徑),封閉曲面實體化 并將比例Ratio和球徑R分別用公式將參數一一關聯起來 Step 2 : 創建UDF模板,點擊特征樹上的 點、球面、球體以及參數Ratio和R作為內部組件,直到右側僅出現輸入組件螺旋線說明創建成功 同時注意切換到參數對話框,將Ratio和R務必激活為Yes狀態,創建完成后可以修改UDF屬性名稱,特征樹知識模板組下面會出現剛才創建的UDF特征,其控制參數也在下面 Step 3 : 創建Loop語句 : 切換到知識工程顧問模塊下面,如下所示,打開Loop命令 如下圖所示,將對應的參數加入列表 1. Input列表:將UDF特征模板和Number參數加入進來,注意所有Loop語句中出現的變量參數需要加入至列表中 2. Input Name : 可以自定義修改Input列表中的出現的參數名稱,且名稱必須與下面語句引用的完全一致,否則出錯。 3.
展開
hey,你的Event Loop
但是Node中的Event Loop是用libuv模擬的,它將不同的任務分配給不同的線程,形成一個Event Loop,以異步的方式將任務的執行結果返回給V8引擎。 Node中的微任務:process.nextTric promise setImmediate... Node中的宏任務:setTimeout setInterval... timers:執行setTimeout() 和 setInterval()中到期的callback。
TEA Pipe培訓之 Automatic Dimensioning及cooling loop
TEApipe Cooling Loop 一個cooling loop的例子,主要包括以下內容: Flexible,preformed and connectors General Parameters Flexible Pompe automatic dimensioning& cooling loop.rar
TCL自學筆記-03
*createmark elems 1 displayed hm_getedgeloops elems markid=1 looptype=2 hm_getedgeloops Returns surface and element free and non-manifold edge loop entities. 返回無曲面和元素的非流形循環邊實體 Syntax hm_getedgeloops entity_type markid=<mark_id> ?looptype=<loop_type>? ?featureangle=<angle>? ?refmarkid=<mark_id>? ?restricttoinput=<value>? Description Returns surface and element free and non-manifold edge loop entities. The return is a "list of loops". Each loop is an ordered list of either surface edge or element node IDs that define each loop. The first value in each loop list is the loop type. The remaining values are the ordered node/surface edge IDs defining the loop. If the loop is closed, the first and last ID are the same.
展開
loop圖1
用Matlab編制的多自由度瞬態動力學強迫響應計算程序分享======Newmark&Runge-Kutta
. % %---------------------------------------------------------------------% gama=0.5;beta=0.25; disp(['Gama= ',num2str(gama),'Beta= ',num2str(beta)]); a2=1/beta/dt;a0=a2/dt;a1=a2*gama; a3=1/2/beta-1;a4=gama/beta-1;a5=dt/2*(a4-1); % if strcmp(method,'Newmark') for loop=1:Nsteps if loop>1 disp(loop,:)=initial_disp(R_set,1)';% 保存請求的計算結果 velo(loop,:)=initial_velo(R_set,1)'; acc(loop,:)=initial_acc(R_set,1)'; if loop==Nsteps break; end %---we may update the K in the line in nonlinear problem----% % K=Ki+a0*M+a1*C; Fi=zeros(N,1); for loopf=1:numel(fi_set) Fi(fi_set(loopf),1)=Force(loop,loopf); end Fi=Fi+M*(a0*initial_disp+a2*initial_velo+a3*initial_acc)+...
展開
在OpenGL中實現鏡面反射
=0; loop<3; loop++) // Loop Through 5 Textures { glBindTexture(GL_TEXTURE_2D, texture[loop]); glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[loop]->sizeX, TextureImage[loop]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[loop]->data); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); } for (loop=0; loop<3; loop++) // Loop Through 5 Textures { if (TextureImage[loop]) // If Texture Exists { if (TextureImage[loop]->data) // If Texture Image Exists { free(TextureImage[loop]->data); // Free The
展開
【PFC6.0】隨機多邊形區域劃分及顆粒填充
def findMinRb VLimit=origin_rad_min*origin_rad_min*10 loop foreach rb rblock.groupmap("new",1) if rblock.vol(rb)<VLimit*4 then rblock.group(rb,1)="minRB" endif endloopend@findMinRb def findNearestRb(pos) minPos=1e100 minId=0 loop foreach rbfind rblock.groupmap("new",1) vecLenghth=rblock.pos(rbfind)-pos if math.mag(vecLenghth)<minPos then minPos=math.mag(vecLenghth) minId=rblock.id(rbfind) endif endloop findNearestRb=minIdend def solveMinRb loop foreach rb rblock.groupmap("minRB",1) rbNearest=rblock.find(findNearestRb(rblock.pos(rb))) rblock.group(rb,20)="dai" rblock.group(rbNearest,20)="dai" group_name=string.build("zu_%1",name_count) name_count+=1
展開
隧道開挖地層損失產生的土拱效應
*(n-1) loop local m(1,n_y) y_pos=y_min+rad+split_y*(m-1) command measure create position [x_pos] [y_pos] radius [rad] endcommand endloop endloopend def get_poro_x tb_poro=table.create("poro") loop foreach mp measure.list table(tb_poro,measure.pos.x(mp))=measure.porosity(mp) endloopend def get_poro_y tb_poro=table.create("poro") loop foreach mp measure.list table(tb_poro,measure.pos.y(mp))=measure.porosity(mp) endloopend def get_poro_xy tb_poro=table.create("poro") tb_x_pos=table.create("x_pos") tb_y_pos=table.create("y_pos") loop foreach mp measure.list table(tb_poro,measure.id(mp))=measure.porosity(mp) endloop loop foreach mp measure.list table(tb_x_pos,measure.id
展開
航天工業攪拌摩擦焊裝備
Closed loop control:Force Control 采用攪拌摩擦焊技術制造的航天產品:
PFC砂土柔性雙軸
=true then Yvel=gy*(wyss-tyy) wall.vel.y(wpUp)=-Yvel wall.vel.y(wpDown)=Yvel loop foreach bp ball.groupmap("upMo",10) ball.vel.y(bp)=-Yvel endloop loop foreach bp ball.groupmap("downMo",10) ball.vel.y(bp)=Yvel endloop endifend def computer_chiCun wly=wall.pos.y(wpUp)-wall.pos.y(wpDown)enddef compute_stress computer_chiCun wyss=-(wall.force.contact.y(wpUp)-wall.force.contact.y(wpDown))*0.5/wlxend def get_g(fac) gy=0 zongKNY=100e6*2*10 loop foreach ct wall.contactmap(wpUp) zongKNY+=contact.prop(ct,"kn") endloop loop foreach ct wall.contactmap(wpDown) zongKNY+=contact.prop(ct,"kn") endloop gy=fac*wlx/(zongKNY*global.timestep) endset fish callback -1.0 @servo_bianjieset fish
展開
柔性簇Cluster模擬基本框架介紹
foreach ct wall.contactmap(wpLeft) zongKNX+=contact.prop(ct,"kn") endloop loop foreach ct wall.contactmap(wpRight) zongKNX+=contact.prop(ct,"kn") endloop loop foreach ct wall.contactmap(wpUp) zongKNY+=contact.prop(ct,"kn") endloop loop foreach ct wall.contactmap(wpDown) zongKNY+=contact.prop(ct,"kn") endloop gx=fac*wly/(zongKNX*global.timestep) gy=fac*wlx/(zongKNY*global.timestep) end set fish callback -1.0 @sevro_walls history id 1 @wxsshistory id 2 @wyss history id 3 @gxhistory id 4 @gy cycle 1 solve save yuya 3、將ball換為cluster 這里注意將第一步生成的table復制粘貼到這個模擬的目錄下,導入后進行cluster的生成。
展開
loop圖2
使用伺服控制(Servo Control)函數進行數值試驗
fish set @high_unbal = 5e4fish set @low_unbal = 2e4fish set @high_vel = 2 伺服控制函數在UDEC和FLAC中寫起來比較繁瑣,主要原因是這些2D程序還沒有完全轉換到新的FISH格式(FISH: Loop語句的進化; FLAC3D 7.0 新特性簡介(P2)---FISH的顯著改進); FLAC3D和3DEC的伺服控制函數寫起來很簡單,示例如下: fish def _servo while_stepping if block.unbal > unbal_limit then vel_ = 0.98*vel_ loop foreach local gp points block.gp.vel.app.z(gp) = vel_ end_loop endif if block.unbal < 0.8*unbal_limit then vel_ = 1.02*vel_ loop foreach gp points block.gp.vel.app.z(gp) = vel_ end_loop endifend 3 應變軟化材料的三軸壓縮試驗 下圖所示的是一個應變軟化材料的三軸壓縮試驗結果。其中左圖顯示的是計算的平均垂直應力sigmav和平均垂直應變ev之間的關系,右圖顯示的是最大不平衡力與時步之間的關系。比較引言中的單軸應力應變曲線,可以發現在三軸條件下應變軟化的行為更加復雜。
展開
fluent-UDF-DEFINE_INIT宏
UDF源代碼如下: /*********************************************************************** UDF for initializing flow field variables ************************************************************************/ #include "udf.h" DEFINE_INIT(my_init_func,d) { cell_t c; Thread *t; real xc[ND_ND]; /* loop over all cell threads in the domain */ thread_loop_c(t,d) { /* loop over all cells */ begin_c_loop_all(c,t) { C_CEntrOID(xc,c,t); if (sqrt(ND_SUM(pow(xc[0],2.),pow(xc[1],2.)
展開
【PFC6.0】三維Cluster碎石三軸模擬
foreach ct wall.contactmap(wpLeft) gX+=contact.prop(ct,"kn") endloop loop foreach ct wall.contactmap(wpRight) gX+=contact.prop(ct,"kn") endloop loop foreach ct wall.contactmap(wpUp) gZ+=contact.prop(ct,"kn") endloop loop foreach ct wall.contactmap(wpDown) gZ+=contact.prop(ct,"kn") endloop loop foreach ct wall.contactmap(wpFront) gY+=contact.prop(ct,"kn") endloop loop foreach ct wall.contactmap(wpBack) gY+=contact.prop(ct,"kn") endloop gx=fac*wly*wlz/(gX*global.timestep) gy=fac*wlx*wlz/(gY*global.timestep) gz=fac*wlx*wly/(gZ*global.timestep)end@get_g(@sevro_factor) @compute_stress fish callback add @sevro_walls -1.0 history deletehistory id 1 @wxsshistory id 2 @wysshistory id 3 @wzss;model mechanical timestep
展開
Fluent UDF為所欲為的后門
</p><p><br></p><p>&nbsp;2. begin_c_loop(c, thread)這個語句什么意思??循環遍歷網格,如果c是一個整型變量,那么其實這個語句就類似于for循環,而其中的c只是循環變量。</p><p><br></p><p>begin_c_loop_int(c, t)</p><p>{</p><p>&nbsp;&nbsp;&nbsp;&nbsp;Message("&nbsp;c=%d&nbsp;&nbsp;",&nbsp;c);</p><p>&nbsp;&nbsp;&nbsp;&nbsp;C_UDMI(c, t, 0) =c;</p><p>}</p><p>end_c_loop_int_ext(c, t)</p><p>上面的代碼會輸出什么??c會從小到大輸出0,1,2,3······</p><p><br></p><p><br></p><p>3. UDF遍歷網格順序是什么??</p><p>之前測試過UDF遍歷網格的順序,也得出來了結論,現在看來是錯誤的。UDF遍歷網格的順序很簡單,就是c從小到大遍歷,既不按照x軸坐標,也不按照y軸坐標</p><p><br></p><p><img src="https://mmbiz.qpic.cn/mmbiz_png/8tJMdLVYZy8j0rCdSib2lia3rRltUFjNabZ6m2ricW6gibjwyBb6y5QHsxG4CpdbhWGlP8ufibkkjGicStpVibd8THJmw/640?wx_fmt=png" width="510" style=""></p><p><br></p><p><br></p><p>4. 每個網格都有一個編號,既然這樣,只要知道了特定網格的編號,使用UDF似乎可以違背任何物理規律,為所欲為????
展開