1 问题的提出
考虑到数据和文档的完整性,Itasca软件在安装时自动备份了数据文件,以前可以自由选择安装目录,但不知啥原因,新的软件把数据备份自动安装到C:\ProgramData内,数据尺寸将近4G,不幸的是我的C盘只有128G, 因此给C盘造成了非常大的压力。而且同一个数据文件放在了每个相关的安装软件中,造成了大量的数据冗余。因此决定清理这些多余的文件。
2 UniaxialStrengthJointed
首先决定清理UniaxialStrengthJointed这个例子。查了一下,目前硬盘内共有13个这样的例子,尼玛,太多了。清理的原则是:第一,以最新版本的例子为准;第二,保留一个3D的,如果可能的话保留一个2D的。
在这个例子中,FLAC3D6.0 与FLAC3D7.0的主要区别是FISH语言。7.0中引入了新的语言格式。
sigmav 6.0
; Function that calculates final strength
fish define sigmav
local sum = 0.
loop foreach local gp gp.list
if gp.isgroup(gp,'bottom') then
sum = sum - gp.force.unbal.y(gp)
endif
endloop
sigmav = sum / 3
end
sigmav 7.0
; Function that calculates final strength
fish define sigmav
local gps = gp.list( gp.isgroup(::gp.list,'bottom') )
return -list.sum(gp.force.unbal(::gps)->y)/3
end
halt 6.0
; Function that determines if solving should stop
fish define halt
global gpHalt = gp.near(0,0,0)
halt = gp.disp.y(gpHalt ) > 4.5e-4
end
halt 7.0
; Function that determines if solving should stop
fish define halt
global gpHalt = gp.near(0,0,0)
halt = gp.disp(gpHalt)->y > 4.5e-4
end
FLAC2D可以使用与FLAC3D差不多相同的代码
; Function that calculates final strength
fish define sigmav
local sum = 0.
loop foreach local gp gp.list
if gp.isgroup(gp,'bottom') then
sum = sum - gp.force.unbal.y(gp)
endif
endloop
sigmav = sum / 2
end
; Function that determines if solving should stop
fish define halt
global gpHalt = gp.near(0,0)
halt = gp.disp.y(gpHalt ) > 4.5e-4
end
checkResult 6.0
fish define checkResult
loop local i (1,table.size('result'))
local beta = table.x('result',i)
local result = table.y('result',i)
local value = analytic(beta)
table.value('analytic',i) = vector(beta,value)
local error = math.abs(100. * (result - value) / value)
table.value('error',i) = vector(beta,error)
endloop
end
checkResult 7.0
fish define checkResult
local res = table.as.list('result')
local anal = vector(::res->x,::analytic(::res->x))
table.as.list('analytic') = anal
local error = math.abs(::100*(res->y - anal->y)/anal->y)
table.as.list('error') = vector(::res->x,::error)
local i = list.find.index(error>2.0,true)
endif
end
目前,FLAC3D 7.0没有完全抛弃6.0的命令,6.0的代码也可以在7.0中运行。至此,目录下仅保存了3个项目文件,2个3D文件和1个2D文件。
3 结束语
本文简要描述了减少Itasca软件数据文件冗余的一个例子。这种操作不具有代表性,主要原因是我的C盘空间不够了,另一方面,我也不需要系统地follow软件中的例子文件。