跳转至

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)

*

()