跳转至

pore

class pore

Properties

d

build对象

SET

模拟设置信息,可记录二次开发新的数据

TAG

模拟信息记录,用于记录和输出信息

solutePara

pore.addSolutePara命令执行后,将求解参数结构体存于这个参数,结构体字段详见pore函数工作表下方

见示例GeoThermalBox3

pathLimitRate

孔喉距离阈值比率,默认值0.5,取值范围建议[0.1,0.8],孔喉宽度小于rate*min(ballR)的连接视作构成孔隙的连接

cDiameterAdd

连接对应的孔喉附加宽度。由于二维颗粒堆积通常会封闭孔喉,需要增加一定的孔喉直径,以保证流体运移

cList

连接列表,每一行代表连接的起始单元Id与终止单元Id(连接1—3与3—1为不同连接),共2列,按单元Id升序排列

cIndexInverse

连接的反向连接Id,用于计算孔隙网络

cIndexNext

连接的下一个连接Id,同一颗粒的连接按逆时针排序,用于计算孔隙网络

cPore

连接所在孔隙Id,连接方向与孔隙遵循右手螺旋法则,故连接与孔隙一一对应,边界连接不在任何孔隙中,其值为反向连接所在孔隙

cPoreInverse

反向连接所在孔隙Id

cDiameter

连接对应孔喉的实际宽度(孔喉垂直于连接)

cLength

连接长度

cPathLength

孔喉长度,等于孔喉对应的两个单元较小的半径(不是直径!)

cKFlow

连接(孔喉)渗透系数

cnIndex

连接在nBall中的索引,用于将nBall大小的填充矩阵转化为对应接触对数组 e.g. cbFilter=d.mo.bFilter(cnIndex);%bonded filter of cList

见示例PoreHydraulicStatic3

nBallP

孔隙连接对应的nBall,当出现孤立颗粒时,需要加入额外邻居颗粒,可能与d.mo.nBall不同

nConnectFilter1

与nBallP对应的构成有效孔隙连接的过滤器

nConnectFilter2

用于记录孤立颗粒(团)的连接过滤器,避免孔隙面积计算出错

aWaterdR

单元流体作用减少半径,用于定义cDiameterAdd

NcPore

单元邻居孔隙Id,mNum行,每行记录对应单元邻居孔隙Id

poreC

孔隙对应连接元胞数组

poreNearby

孔隙的邻居孔隙元胞数组

poreFlowMass

孔隙渗流流体质量元胞数组

poreIndex

孔隙Id对应元胞数组

poreP

孔隙构成颗粒元胞数组(首尾列相同)

poreCAngle

*用于孔隙几何计算

porePAngle

*同上

porePAngleOverlap1

*同上

porePAngleOverlap2

*同上

porePOuterLength

*同上

porePOuterAngle

*同上

fluid_k

obj.pDensity=obj.fluid_k*obj.pPressure+obj.fluid_c;

fluid_c

obj.pDensity=obj.fluid_k*obj.pPressure+obj.fluid_c;

pNum

划分孔隙数目

pPoints

孔隙构成单元元胞数组,pNum行,每行记录构成孔隙的颗粒Id,由于poreP转化得到

pMass

孔隙流体质量列表

pArea

孔隙流体面积列表

pDensity

孔隙流体密度列表

pPressure

孔隙流体压力列表

pK

fluid_k of each pore

pC

fluid_c of each pore

dT

流体计算时间步

totalT

当前计算时刻

isCouple

是否耦合固体,isCouple=0流体不对颗粒产生力作用,isCouple=1,流体对颗粒产生力作用,涉及孔隙的重新剖分及数据传递

pThickness

孔隙厚度(沿Y方向)

isGPU

是否启用GPU计算

Methods

addSolutePara(obj,para)

添加溶质运移问题的求解参数,如温度,溶质浓度等,并初始化属性值(记录于p.SET中)

obj: pore对象; para: 求解参数结构体,记录于p.solutePara中

见GeoThermalBox示例

balance(obj,varargin)

流体迭代计算

varargin:可变输入参数(0-3个),详见下方

pId=getBallConnectedPore(obj,bId)

根据颗粒Id得到邻居孔隙Id

bId:颗粒Id

pId: 孔隙Id

setFlowPath(obj)

设置孔喉宽度(cDiameter)及渗径长度(cPathLength)

setInitialPores(obj)

搜索孔隙并初始化孔隙参数

conFilter,与platen连通的过滤器

见GeoThermalBox示例

setPressure(obj,varargin)

设置孔隙流体流体压力,并更新相关参数

varargin: 无输入或与p.pPressure等大数组

show(obj,varargin)

后处理绘图函数,详见下方

setNewPore(obj)

更新孔隙拓扑结构

setPlaten(obj,type)

设置platen单元状态

type:取值‘fix'或’unfix', 是否锁定platen单元坐标

见GeoThermalBox示例

pId=setBallPressure(obj,bId,pressure)

部分更新颗粒邻居孔隙流体压力,并更新相应参数(密度,质量等);常用于设置压力边界条件

bId:颗粒Id; pressure: 压力数组,大小与bId相同

pId: bId对应颗粒邻居孔隙Id

见GeoThermalBox示例

setDensity(obj,varargin)

设置部分孔隙流体密度,并更新质量等相应参数,类似setPressure

类似setPressure

obj=pore(d)

初始化孔隙类

d: build对象

obj:pore对象

见GeoThermalBox示例

setMass(obj,varargin)

设置孔隙流体质量,并更新相关参数,可用于设置流量边界条件,类似setPressure

setNewNBall(obj)

d.mo.nBall更新时,重新搜索孔隙

balanceConvection(obj,varargin)

对流计算(由于渗流(速度)引起的热对流,机械扩散等过程)

varargin:无输入时,计算所有求解参数(记录于p.solutePara)

balanceConvection0(obj,paraI)

对流计算基础函数

paraI:求解参数结构体

balanceDiffusion0(obj,paraI)

扩散计算(由于温度梯度,浓度梯度引起的热传导,分子扩散等过程)

paraI:同上

balanceFluid(obj)

渗流计算

ball2Fluid(obj)

根据固体颗粒堆积计算孔隙流体面积,密度,压力等

density2Mass(obj)

通过孔隙流体密度更新质量

density2Pressure(obj)

通过孔隙流体密度更新压力

dispNote(obj,note)

消息输出

note: 消息字符串

fluid2Ball(p)

计算流体对固体作用力,更新d.mo.mPX, d.mo.mPZ

gpuStatus=setGPU(obj,type0)

同build类

mass2Density(obj)

通过孔隙流体质量更新密度

nConnectFilter2New=getNConnectFilter2(obj,nConnectFilter1)

用于更新nConnectFilter2,避免孤立颗粒(团)引起计算出错

obj1=setNearbyPore(obj)

重新搜索孔隙拓扑结构,用于数据传递

obj:pore对象

pArea0=getPoreArea(p)

计算孔隙面积

pDensityNew=transferData(objOld,objNew)

基于新老孔隙拓扑结构更新孔隙流体密度(以满足质量守恒),进而更新流体压力

pId=setBallPara(obj,type,bId,value)

部分更新颗粒邻居孔隙求解参数 记录于p.SET中

type: 参数名; bId: 颗粒Id, value: 颗粒属性值

见GeoThermalBox示例

recordStatus(obj)

*待开发

setWaterdR(obj)

基于p.aWaterdR设置孔喉的水力半径,用于计算cDiameterAdd

showData(obj,vName)

绘图基函数,一般不直接使用

vName: 属性名,绘图内容