fs
class fs
Properties
Methods
M=fs.getMatDEMscore(varargin)
通过测试获得计算机的MatDEM计算评分
无输入时测试最多可能颗粒数;一个整数输入时,赋为testNum
user_BoxTestSpeed.m
density=calcualteBlockDensity(mo, x1, y1, z1, x2, y2, z2)
计算块体的密度
mo:模型d.mo; x1,yz…:块体的对角线点坐标
密度
gData=chooseGPU(varargin)
测试所有可用GPU,并选择可用显存最多的GPU
无输入时或输入为'auto'自动选择空闲GPU,输入数字时选择指定GPU
GPU信息结构体
fs.chooseGPU();
B=copyDataA2B(A, B)
将A的所有属性复制给B
A:对象A; B:对象B,参数可为结构体或Box,build等对象
对象B
disp(note)
在消息框中显示结果
note:需要显示的消息字符串
无
fs.show('message');
general3Dset()
设置三维显示函数,用在show()中
无
无
generalView()
设置三维观看位置,用在show()中
无
无
limitFrame(d,sId,x1,x2,y1,y2,z1,z2)
增加一个刚性外框,限制单元在其中运动。当单元要接触到x1,x2,y1,y2,z1,z2定义边界框时,就会被反射回来。需要在每步d.mo.balance()命令后运行这个命令,可以与d.mo.afterBalance属性一起使用
sId:单元编号;其余:外框的边界坐标
movie2gif(name, frames, dt)
根据frames里的信息,生成gif动画,并保存在gif文件夹
name:动画名; 动画帧结构体;动帧时间间隔,见user_makeGIF示例
见makegif示例
save(path,name,value)
保存参数到.mat文件
path:保存路径; name:变量名; value:变量值
无
fs.save('data/a.mat','B',B)
data=testSpeed(d)
测试模型的邻居检索和平衡计算速度
d对象
速度数据结构体
xyzFilter=selectBlockBalls(mo, x1, y1, z1, x2, y2, z2)
找出在两顶点间块区域的单元
mo:模型d.mo; x1,y1…:块体的对角线点坐标
过滤布尔矩阵,1代表在块体内
setPlatenStress(d, StressXX, StressYY, StressZZ, border)
设置压力板上正向压力,仅给border范围内有接触的单元设置体力,力作用于right,back和top压力板上
可为4个或5个输入参数,施加三轴力为(d, StressXX, StressYY, StressZZ, border),施加单轴力为(d,type,stress,border),d: build对象; StressXX, StressYY, StressZZ: 三个方向的法向应力; border: 施加应力的距离; type可取'StressXX','StressYY','StressZZ'
无
showObj(obj,varargin)
显示结构体中的三维球,默认会清除已有的显示
obj:结构体,包含.X,.Y,.Z,.R信息; varargin: 当有输入参数时,不会清除当前显示
无
fs.showObj(obj,'add'); 不渲染
fig=surfaceValue(X, Y, Z, R, V)
画三维球和标量
X,Y,Z,R:坐标和R半径数组; V:标量值数组
图的句柄
fig=surfaceVector(X, Y, Z, R, U, V, W)
画三维球和向量
X,Y,Z,R:坐标和R半径数组; U,V,W: 方向量数组
图的句柄
0以下为程序内部函数,通常不直接使用(部分新函数未列出)
adjustSize(d, requiredStrain, time, varargin)
*
()
adjustSize0(d, requiredStrain, varargin)
*
()
blockXYZ(blockW,blockL,blockH,ballR)
*
()
commandRep(str)
*
()
cube(modelSize, R)
*
()
CuCalculate2D(d)
*
()
dataA2B(A, B)
*
()
dataA2B2(varargin)
*
()
dataCurveLongLine(valueName, d, x1, z1, x2, z2, disLimit)
*
()
dispNote(note, isUI, handle)
显示结果*
()
drawDisc(cX, cY, cZ, R, nX, nY, nZ, color)
*
()
EvCalculate(d)
*
()
EvCalculate2D(d)
*
()
fillValue(X, Y, R, value)
*
()
fluidHead2Den(fluidHead, fluidSpan)
*
()
getBallPara(ballR, MatId, Mats)
*
()
getBlockEdge(mX, mY, mZ, border)
*
()
getBlockStrainStress(obj)
计算块体的应力应变曲线*
()
getBlockStrength(obj)
计算块体强度*
()
getBlockWHT(X, Y, Z, edge)
用于单轴强度测试
()
getCuCircle(mSize)
*
()
getDistribution(type, num, maxRrate)
获取单元粒径分布*
()
getDropStepNum(d)
*
()
getEdgeId(d, platenId, edge, type)
*
()
getEdgePlatenId(d0, border, platenType)
*
()
getnBreakFilter(d, aBreakFilter)
*
()
getNewElementId(Id, delId)
*
()
getPbyId(d, Ids)
*
()
getPlatenEdgeId(aX, aY, platenId, border)
*
()
getPricipalStress(m)
*
()
getStrain(d)
*
()
getStrain0(d)
*
()
getStrain2(d)
*
()
getStress(m)
*
()
getTwoGroupConnect(G1_gId, G2_gId, nBall)
获取两组单元编号的相连接矩阵过滤器
两组单元编号,邻居矩阵
过滤布尔矩阵,1代表胶结
getTuCircle(mSize)
*
()
getVisRate(mX, mY, mZ, mR)
()
insertArray(oldA, addA, addI)
*
()
isExistInCells(str, strCells)
判断某字符串是否在字符串cell数组中*
()
layeredModel(V, Span, Id)
*
()
loadOriginalData(obj, aId0, mNum)
*
()
macroToMicro3(E, v, Tu, Cu, Mui, d, den)
基于三维转换公式,计算相应单元间参数
杨氏模量,泊松比,抗拉强度,抗压强度,摩擦系数,直径,密度
microToMacro3(Kn, Ks, Xb, Fs0, Mup, d, den)
基于三维转换公式,计算相应模型整体参数
正向刚度,切向刚度,断裂位移,抗剪力,单元摩擦系数,直径,密度
macro3Dto2D(E, v, Tu, Cu, Mui, d, den)
*
()
macroToMicro2(E, v, Tu, Cu, Mui, d, den)
*
()
microToMacro2(Kn, Ks, Xb, Fs0, Mup, d, den)
*
()
mixProperty(d, Pname)
*
()
moveBalls(d)
*
()
moveBallsNew(d, Id)
*
()
nFilter2Con(Nball, filterIn)
*
()
noBIntact(d)
*
()
platenStress2Gravity(d0, gName, direction, stress)
根据压力板的压力计算每个单元所受体力
build对象,组名,方向(X,Y,Z),应力
每个单元所受体力
见user_BoxTunnel2
randSeed(seed)
*
()
rectDisc(w, h, ballR)
*
()
saveRecord(tl)
*
()
selectBall(mX, mY, mZ, span)
*
()
selectBlockClump(mX, mY, mZ, r, span)
*
()
setBlock(w, h, t, r)
*
()
setBoundary(mX, mY, mZ, mR, type, sXYZ)
*
()
setBox(mX, mY, mZ, r, type, sXYZ)
*
()
setEdgeSize(d, edge)
*
()
setFlotage(obj, fluidDensity, fluidMin, fluidMax)
*
()
setTwoBoundaries(mX, mY, mZ, r, type, tag)
*
()
showCrack(breakId, aX, aY, aZ, aR)
*
()
showCrackMovie(breakId, aX, aY, aZ, aR)
*
()
showFailureMovie(failureId, aX, aY, aZ, aR)
*
()
showLayerFrame(obj)
*
()
showLines(X, Y, Z, startId, endId, lineColor)
*
()
showMovement(d, loopTime, balanceNum, type)
*
()
showRect(x1, y1, z1, x2, y2, z2, style)
*
()
sizeRate(mSize)
*
()
transferData(nBallOld, nBallNew, a_Num, m_Num, nValue)
*
()
uniformSize(d, rate)
*
()