
發布
注冊
/
登錄ansys編寫函數
關注創建者:王靖雯 創建時間:2023-03-07
ansys編寫函數的視頻教程
ANSYS建模及抗震分析——零基礎輕松上手命令流編寫
重點且詳細地講解了ANSYS命令流編寫規則,整個命令流的編寫內容包括:材料屬性定義、截面特性定義、節點建立、單元生成、分析設置及地震波導入,命令流為之前讀書時所編寫,共計25頁;整個過程講解清晰、通俗易懂,對ANSYS零基礎及初學者非常適用(高手劃過);同時,該橋梁模型可作為畢業論文參考案例,除了地震分析,亦可做靜力分析;此種方法亦可用于建立簡支梁橋、連續梁橋以及建筑結構的ANSYS有限元模型,只需要將相應截面參數修改即可
¥50 42分鐘 900播放
查看
基于ANSYS的function多段函數為ansysworkbench中多變量載荷添加(無聲版本)
基于ANSYS的function多段函數為ansysworkbench中多變量載荷添加 基于對于一個結構的熱對流分析
¥10 13分鐘 31播放
查看
ansys編寫函數的實例教程
subroutine Voigt_to_forth(b,a)
include 'ABA_PARAM.INC'
dimension a(3,3,3,3), b(6,6)
do i = 1,3
do j = 1,3
ia = i
if (i.ne.j) ia=9-i-j
do k = 1,3
do l = 1,3
ib = k
if (k.ne.l) ib=9-k-l
a(i,j,k,l) = b(ia,ib)
if (ia.gt.3) a(i,j,k,l) = a(i,j,k,l) / 2
if (ib.gt.3) a(i,j,k,l) = a(i,j,k,l) / 2
end do
end do
end do
end do
return
end
sgn函數
展開 for循環嵌套優化
for循環嵌套相比于if嵌套來說更加復雜,閱讀起來會更麻煩,下面說說幾點要注意的東西:
1、最多只能兩層for循環嵌套
2、提取內層循環到新函數中
3、多層循環時,不要簡單地位索引變量命名為i,j,k等,容易造成混淆,要有具體的意思
提取復雜邏輯,語義化
有的時候,我們會寫出一些比較復雜的邏輯,閱讀代碼的人看到后可能搞不清楚要做什么,這個時候,就應該提取出這段復雜的邏輯代碼。
這段代碼表示當年齡大于18并且是男性的話,可以doSth,但是還是不夠清晰,可以將其提取出來
雖說多了一個函數,但是代碼更加清晰和語義化了。
總結
本文從函數命名,函數參數和函數的代碼編寫三個方面談了關于如何編寫好一個函數的感受和想法。文中提到了很多具體的情況,當然日常編碼中肯定會遇到更多復雜的情況可能我暫時沒有想到。我簡單的歸納了幾點:
1、準確地對變量、函數命名
2、不要有重復邏輯的代碼
3、函數的行數不要超過20行,這里的20行只是個大概,并不一定是這個數字
4、減少嵌套
我相信大家一定會很多關于這方面的經驗,歡迎進行交流,共同提高代碼質量。
展開 計算3*3矩陣的逆矩陣
subroutine inv3x3(A,invA,det)
implicit none
real(8), intent(in) :: A(3,3)
real(8), intent(out) :: invA(3,3), det
integer :: i,j
call deter3x3(A,det)
if (abs(det) < 1e-6) then
invA=0.0d+0
else
invA(1,1)=((A(2,2)*A(3,3))-(A(2,3)*A(3,2)))/det
invA(2,1)=-((A(2,1)*A(3,3))-(A(2,3)*A(3,1)))/det
invA(3,1)=((A(2,1)*A(3,2))-(A(2,2)*A(3,1)))/det
invA(1,2)=-((A(1,2)*A(3,3))-(A(1,3)*A(3,2)))/det
invA(2,2)=((A(1,1)*A(3,3))-(A(1,3)*A(3,1)))/det
invA(3,2)=-((A(1,1)*A(3,2))-(A(1,2)*A(3,1)))/det
invA(1,3)=((A(1,2)*A(2,3))-(A(1,3)*A(2,2)))/det
invA(2,3)=-((A(1,1)*A(2,3))-(A(2,1)*A(1,3)))/det
invA(3,3)=((A(1,1)*A(2,2))-(A(1,2)*A(2,1)))/det
endif
return
end subroutine inv3x3
計算2*2矩陣的逆:
subroutine inv2x2(A
展開 計算2*2矩陣的跡:
subroutine trace2x2(a,aii)
implicit none
real(8), intent(in) :: a(2,2)
real(8), intent(out) :: aii
aii = a(1,1)+a(2,2)
return
end subroutine trace2x2
計算3*3矩陣的跡:
subroutine trace3x3(a,aii)
implicit none
real(8), intent(in) :: a(3,3)
real(8), intent(out) :: aii
aii = a(1,1)+a(2,2)+a(3,3)
return
end subroutine trace3x3
將向量(9*1:變形梯度)轉化為3*3矩陣存儲
subroutine vecmat9(dvin,dmout)
implicit none
real(8), intent(in) :: dvin(9)
real(8), intent(out) :: dmout(3,3)
integer :: i
dmout(1,1) = dvin(1)
dmout(1,2) = dvin(2)
dmout(1,3) = dvin(3)
dmout(2,1) = dvin(4)
dmout(2,2) = dvin(5)
dmout(2,3
展開 3*1向量叉乘:
subroutine vecprod(dvin1,dvin2,dvout)
implicit none
real(8), intent(in) :: dvin1(3), dvin2(3)
real(8), intent(out) :: dvout(3)
dvout(1)=dvin1(2)*dvin2(3)-dvin1(3)*dvin2(2)
dvout(2)=dvin1(3)*dvin2(1)-dvin1(1)*dvin2(3)
dvout(3)=dvin1(1)*dvin2(2)-dvin1(2)*dvin2(1)
return
end subroutine vecprod
3*1向量點乘:
subroutine dotprod(dvin1,dvin2,dvout)
implicit none
real(8), intent(in) :: dvin1(3), dvin2(3)
real(8), intent(out) :: dvout(3)
dvout = dvin1(1)*dvin2(1)+dvin1(2)*dvin2(2)+dvin1(3)*dvin2(3)
dvout = abs(dvout)
return
end subroutine dotprod
3*3矩陣的行列式的值:
subroutine deter3x3(dmin,d)
implicit none
real(8), intent(in) :: dmin(3,3
展開 
ansys編寫函數的相關專題、標簽、搜索
ansys編寫函數的最新內容
附件下載
聯系工作人員獲取附件
概要
成像系統(例如顯微鏡)的衍射極限分辨率可以通過不同方式表征。在本文中,我建議使用在 OpticStudio 中計算的點擴散函數 (PSF) 來客觀衡量這些成像系統的分辨率。文中介紹了重疊圖像(探測器)平面上兩個點的 PSF 的兩種方法。第一種方法使用多重結構編輯器,第二種方法使用圖像模擬工具。文中比較了這兩種方法,并討論了它們的優缺點。
問題:
Ansys Workbench的載荷加載形式有三種,constant/table/function。Constant是在載荷步內給定恒定值;table形式較為便捷,可以在定義每個子步的載荷大小; function形式可以輸入以time/X/Y/Z為變量的簡單方程。
但是仍有某些形式的載荷較難輸入,例如分段復雜函數載荷等。
解決方法:
需要使用Ansys經典界面的
附件下載
聯系工作人員獲取附件
本文討論了如何在 OpticStudio 中對點擴散函數進行建模和解釋。使用的分析特征是 Spot Diagram、FFT PSF 和 Huygens PSF。將討論每種工具的優點,以及用于最準確分析的有用特征設置。
介紹
光學系統的點擴散函數 (PSF) 是單個點光源產生的輻照度分布。(望遠鏡拍攝遙遠恒星的圖像就是一個很好的例子。盡管源可能是一個點
聯系工作人員獲取附件
成像系統(例如顯微鏡)的衍射極限分辨率可以通過不同方式表征。在本文中,我建議使用在 OpticStudio 中計算的點擴散函數 (PSF) 來客觀衡量這些成像系統的分辨率。文中介紹了重疊圖像(探測器)平面上兩個點的 PSF 的兩種方法。第一種方法使用多重結構編輯器,第二種方法使用圖像模擬工具。文中比較了這兩種方法,并討論了它們的優缺點。
簡介
成像系統的性能與其分辨率有關
本文介紹如何使用Zemax編程語言 (ZPL) 創建宏來計算和繪制用戶自定義的性能指標。 在本示例中,系統的環帶垂軸色差 (Zonal Transverse Chromatic Aberration, ZTCA) 將被分析。在解釋了需要使用的基本算法之后,本文將描述如何將宏通用化以允許用戶進行更加靈活的使用,包括用戶輸入和錯誤捕獲。作者 Alessandra Croce附件下載文章附件簡介假設我們要計算系統的環帶垂軸色差
四階張量雙點乘:
subroutine aaaa_dot_dot_bbbb(n,a,b,c)
include 'ABA_PARAM.INC'
dimension a(n,n,n,n), b(n,n,n,n), c(n,n,n,n)
計算3*3矩陣的逆矩陣
subroutine inv3x3(A,invA,det)
implicit none
real(8), intent(in) :: A(3,3)
real(8), intent(out) :: invA(3,3), det
integer :: i,j
call deter3x3(A,det)
3*1向量叉乘:
subroutine vecprod(dvin1,dvin2,dvout)
implicit none
real(8), intent(in) :: dvin1(3), dvin2(3)
real(8), intent(out) :: dvout(3)
dvout(1)=dvin1(2)*dvin2(
計算2*2矩陣的跡:
subroutine trace2x2(a,aii)
implicit none
real(8), intent(in) :: a(2,2)
real(8), intent(out) :: aii
aii = a(1,1)+a(2,2)
return
end subroutine
clear,clc,close all
format compact
robotModel=4;DH_Param;JointNum=length(DH);
ROCR6v2 關節2、3偏置
qlim=deg2rad([-179,179;-146,146;-146,146;-179,179;-179,179;-179,179]);
for i=1:JointNum
L(i)=RevoluteMDH
