PFC利用UDTensor绘制应力十字架
当发生大变形的时候我们往往需要知道内部的应力状态,这时候张量的可视化就是一个比较好的方法。
这里利用PFC中的UDTensor来显示直剪试验中的应力状态。
直剪试验产生的位移场为:
上部的盒子右移,产生位移场。
我们首先需要用测量圆来记录试样中的数据:
[meas_radius=yy*0.2]
[meas_x_chongdie=meas_radius*0.5]
[meas_y_chongdie=meas_radius*0.5]
def create_measure
x_pos=-wlx*0.5+meas_radius*1.2
y_pos=-wly*0.5+meas_radius
loop while x_pos+meas_radius<wlx*0.5
y_pos=-wly*0.5+meas_radius
loop while y_pos+meas_radius<wly*0.5
command
measure create position [x_pos] [y_pos] radius [meas_radius]
endcommand
y_pos+=2*meas_radius-meas_y_chongdie
endloop
x_pos+=2*meas_radius-meas_x_chongdie
endloop
end
@create_measure
测量圆分布如图:
这里没有完全分布满,读者可以自己再调一下参数得到一个比较满的测量圆分布。
得到UDTensor的代码:
def get_stress array stress(133)
count=1
loop foreach mp measure.list
tessor_stress=user.tensor.create(measure.pos.x(mp),measure.pos.y(mp))
user.tensor.value(tessor_stress)=measure.stress(mp)
stress(count)=tessor_stress
count+=1
endloop
end
@get_stress
主要是两个要素,一个是UDTensor的位置,一个是大小。
可视化效果如图: