-
1
、怎样查看模型?
答:
plot grid
可以查看网格,
plot grid num
可以查看节点号。
2
、请问在圆柱体四周如何施加约束
条件?
答:可以用
fix ... ran cylinder
end1 end2 radius r1 cylinder end1 end2
radius
r2
not
,其中
<
br>PLOT <
br>5
r2
,其实就是选择
range
的时候选两个圆柱的
差,即得到边界。命
令流如下:
fix x range end1 1 0 0
end2 1 4 0 rad 1 end1 1 0 0 end2 1 4 0 rad 1
3
、怎么能把一个
的图像数据导出来以便用其他软件绘图?
答:用
set
log
on
命令,把数据导出来,
转到
excel
里处理一下,然
后用<
/p>
surfer
或者什么作图软件绘制就行了。
4
、用命令建立模型后,如何
显示点的坐标?
答:使用
plo blo gro gpnum
on
命令
5
、关于
gauss_dev
对性质进行高斯正态分布的问题?
答:根据手册上的说明:下面的命令设定一个平均摩擦角为<
/p>
40
度,
标准方差是±
%。则命令如下:
prop friction 40
gauss_dev 2
问题:请问
gauss_dev
2<
/p>
中的
2
是如何计算的?如果把±
5
%改为±
10
%,则
命令应如何写?
40
×
5
%=
2
6
、
reflect
问题
问:
gen
zone
radbrick
&p0
(0,0,0)
p1
(10,0,0)
p2
(0,10,0)
p3
(0,0,10)
&size 3,5,5,7
&ratio 1,1,1,1.5 &dim 1 4 2 fill
plot surf
gen
zone reflect dip 0 dd 90
(对
x
y
面做镜像)
gen zone
reflect dip 90 dd 90
(对
yz
面做镜像)
(
1<
/p>
)
dd
表示
y<
/p>
轴正向顺时针到那条射线的夹角,
dip
表示对称参照
面与
xy
平面的夹角,对
称参照面与
xy
平面的夹角在
xy
p>
平面的投影
是一条射线。
首先应该按照
p>
dd
的方向大体确定这个面的朝向,
dd
指
的是从
y
轴
正方向按顺时针
(
clockwise
)
方向转向所要确定面的法线
方向
<
/p>
在
xy
平面上的投影的夹角,
然后再确定
dip
,
di
p
指的是从
xy
平面转
向所要确定的平面的角.
(及
z
轴负方向转过角度)
(
2
)
命令:
reflect normal
xyz origin xyz
(根据法线和过一点建的面)
最常用,
至于实际使用过程中有人问道:
normal -1
0 0
与
normal 1 0 0
的区别,我试过两者的效果是一样的,没区别,虽然方向不同,但表
达的是同一个面。<
/p>
reflect
dd a dip b origin xyz
这个就是用里建立斜面镜像的。
有一
点注意了,
镜像的时候如果是模型镜像的话,
相当于在建立一个
模型,
故,
在
reflect
的前面要加建模的关键字,
gen zone
reflect
??
7
、关于
两种
fix
是否有区别?
fix z range z -0.1 0.1
fix x range x -0.1 0.1 any
x 1.9 2.1 any
fix y range y
-0.1 0.1 any y 1.9 2.1 any
和
fix
z range z -0.1 0.1
fix x range x -0.1 0.1
fix x range 1.9 2.1
fix
y range y -0.1 0.1
fix y range y 1.9 2.1
答:是
一样的,
any
表示并列连接关系,及
and
的意思。
8
、
initial
apply
set
的区别
答:
initial
初始化命令,初
始化计算应力状态,定义材料参数、重力
等;
apply
边界条件限制命令,
如施加边界的力、
位移等
约束等;
set
用
于设置计算的模式,控制计算过程。
Ini
施加的初始力在计算过程中是会变的,一般体力需要初
始化,而
apply
施加的力、边界条件不会随着计算变化。<
/p>
set
命令作用于整个网
格
(
赋值全局变量
),ini
则初始化指定范围内网格点、域的偏移量。初
始应力不仅仅是重力引起的。
9
、
Tension-p
shear-p tension-n
shear-n
表示的含义
答:在计算的循环里面
,
每个循环中
,
每个
zone
都依据
failure criterion
处于不同的状态
,shear
和
tension
分别表示因受剪和受拉而处于塑性
状态
p>
.n
表示
now,p
表示
previous,
即分别表示在现在和以前的循环当
中处于塑性状态。
10
、
history
保存数
据,
print
显示
在错误的命令流中“原点位移
.dat
”文件中只有:
“
Step 1
Y-Displace
”
而没有保存下数值,怎么回事?我
怎么才能获得
table
中的数据?
输入
'print tabel n
'
能得到
table
中的数据
(正确)
hist
gp ydisp 0,0,0
hist zone syy 0,1,0
hist zone syy 1,1,0
step 3000
hist
write 1 file
原点位移
.dat
hist write 2 file
中部单元应力
.dat
hist write 3 file
边缘单元应力
.dat
hist write 1 table 1
hist write 2 table 2
hist write 3 table 3
hist write 2 3 vs 1 file
单压
.dat
(错误)
hist gp
ydisp 0,0,0
hist zone syy
0,1,0
hist zone syy 1,1,0
hist write 1 file
原点位移
.dat
hist write 2 file
中部单元应力
.dat
hist write 3 file
边缘单元应力
.dat
hist write 1 table 1
hist write 2 table 2
hist write 3 table 3
hist write 2 3 vs 1 file
单压
.dat
step 3000
11
、
plot
显示
x
p>
、
y
坐标图
hist n 1
hist gp
ydisp 0,0,0
hist ax_str
hist gp xdisp 1,1,0
step 1500
plot hist 2 vs -1 axial stress vs
axial disp.
plot hist 3 vs
-1 circumferential disp. vs axial disp
答:
那
2
是不是代表
hist gp ydisp
0,0,0
,
而
-1
指得是
hist gp ydisp 0,0,0
为什么不是
1
而是负值?
1)
在
plot hist m
vs n
的形式里
,m
代表
y
轴
,n
代表
x
轴
(
不管
m,n
的正
负
);
2)
表示
对其值作
如果大家使用
AUTOCAD
的话就明白
的含义了
< br>,
比如上面的
hist 1 gp ydisp
的值是
0~100,
那么
vs -1
就变成
-100~0.
以此类推
.
3)
要这么做主要是为了符合岩土
工程的习惯需要
,
例如桩载荷试验曲
线
,
沉降曲线等都不是画在第一象限内。
12
、关于
的命令注释(设置地下水位)
答:<
/p>
(
1
)
的功能是设置地下水位面,
在二维计算中,
通过
water
table
命令即可设置
水位线,在三维计算中由于地下水位是面,因此
需要作一些插值运算,以便形成水位面。
这个
FISH
程序包含三个函
数
parm,aux1
和
aux2
。
parm
用来设定水位的边值,即设置水位的区<
/p>
域,
aux1
插值计算等值线的点,
p>
aux2
调用
aux1
的计算结果,使用
FLAC3D
命令形成水位面。
(
2
)首先设置参数
值,然后定义一个
table.
def parm
nptab1=7
nprof=10
end
parm
table 1 (12 0) (18.25 12.5) (25 17) (35
21) (50 24) (75 25) (150 25)
产生
table1
,包含
7
组数据点。
3)
在解释的两个
FISH
函数之前,
p>
对
table,xtable,ytable
作一些总的说
明。
程序反复使用了这
三个变量,
理解了这三个变量的含义,
这段程序就解决了大半问题了。
Itasca
的所有软件都使用了相同的数据结构储存数据,
称之为链表结
构,
类似于关系型数据库
中的数据链接方法。
如果有数据结构的知识,
或掌握关系型数据
库的
SQL
语言,
这三个变量的含义
就不难理解了,
只不过这个操作与真正的数据库操作相比,只有两个数据变量
x,y
。
我用数据库的术语作解释:
table
就是产生一个“表”
,
xtable,ytable
的
作
用
就
是
产
生
一
个
新
表<
/p>
(Create)
以
及
< br>对
表
中
的
数
据
进
行
取
出
(Select)
、插入
(Insert)
、替换
(Update)
操作
.
4
)
FIS
H
函数
aux1
的作用是在
table 1
的基础上产生出另外个
table
,
table
的
ID
从
11
到
17
,每个
table
有
10
个数据集。
alfa
的计算方法
是为适合
(fit)
曲面
而采用的坐标点算法。
def aux1
loop n(1,nptab1)
rr=xtable(1,n)
zz=ytable(1,n)
loop k(1,nprof)
case_of k
p>
alfa=0.5*(pi+.1)*float(k-2)/float(nprof-2
)
xtable(n+10,k)=rr*cos(alfa)
ytable(n+10,k)=rr*sin(alfa)
case 1
xtable(n+10,k)=rr
ytable(n+10,k)=-40.0
case 2
xtable(n+10,k)=rr
ytable(n+10,k)=0.0
end_case
end_loop
end_loop
end
aux1
当执行这个
FISH
函数后,
生成
(nptab1+10,nprof)<
/p>
组数据,
这些数据为
Aux2
调用。注意:本段程序产生的数据是为那个特定的曲面边坡制
作的,不是一
个
general
purpose
的
LIB
5
)
FISH
函数
p>
aux2
的作用是使用
W
< br>ATER TABLE face
命令产生水
面,
把
table 1
的
ytable
值作为
z
p>
坐标,
aux1
产生的数据作为
x,y
坐标。
def aux2
command
set grav 0 0 -10
water dens 1000
end_command
loop
n(1,nptab1-1)
loop k (1,nprof-1)
xx1=xtable(n+10,k)
yy1=ytable(n+10,k)
zz1=ytable(1,n)
xx2=xtable(n+10,k+1)
yy2=ytable(n+10,k+1)
zz2=zz1
xx3=xtable(n+11,k+1)
yy3=ytable(n+11,k+1)
zz3=ytable(1,n+1)
xx4=xtable(n+11,k)
yy4=ytable(n+11,k)
zz4=zz3
command
WATER TABLE face
xx1,yy1,zz1 xx2,yy2,zz2 xx3,yy3,zz3
WATER TABLE face xx1,yy1,zz1
xx3,yy3,zz3 xx4,yy4,zz4
end_command
end_loop
end_loop
end
aux2
13
、
FLAC
结果数据的导出
pl set back white
;
设置背景
set plot bitmap size (800,510)
;
设置图片大小
plot set caption size 37
设置图例数字大小
(default=35
范围
10-50)
mainwin size 1 1 position 0 0.8
command window
plot set
window size 0.8 0.8 position 0.1 0.0 graphics
window
plot set center 100
0 40
根据情况更改
14
、一段
fish
命令的解释<
/p>
def aux1
定义函数
loop n(1,nptab1)
开始一个循环,从
1
循环到变量
np
tab1
rr=xtable(1,n)
从
table 1
的
x
列中读第
n
个数付给变量
rr
zz=ytable(1,n)
从
table 1
的
y
列中读第
n
个数付给变量
zz
loop k(1,nprof)
开始第二个循环,从
1
循环到变量
np
rof
case_of k
下面
是一个选择结构,利用变量
k
判断
alfa=0.5*(pi+.1)*float(k-2)
/float(nprof-2)
xtable(n+10,k)=rr*cos(alfa)
ytable(n+10,k)=rr*sin(alfa)
case 1
当
k
< br>=
1
的时候执行下面语句
xtable(n+10,k)=rr table n+1
0
的
x
列第
k
个值等于变量
rr
ytable(n+10,k)=-40.0 table n+10
< br>的
y
列第
k
个值等于变量
-40
case
2
当
k
=
2
的时候执行下面语句
xtable(n+10,k)=rr table n+10
的
x
列第
k
个
值等于变量
rr
ytable(n+10,k)=0.0 table n+10
的
y
列第
k
个值等于变量
0
end_case
结束选择结构
end_loop
结束第二个循环
end_loop
结束第一个循环
end
函数定义结束
aux1
执行什么定义的函数
15
、有关命令的解释
(
1
)
p>
apply nvel 0.1 plane dip 60 dd 270 range
left_boun
apply
施加边界条件,
plane
法向速度为
0.1
,
plane
面的位置:倾角
60
(在
xo
y
平面从
-Z
轴方向逆时针旋转)
p>
,
dd
走向
27
0
度,从
+y
方
向绕
z
轴顺时针旋转;
(
2
)
ini szz -5e4 grad 0 0 -1e4
ini
初始边界条件,
szz=-5e4+x*0+y*0+-z*-1e4,
注:
-5e4
是
range
范<
/p>
围起点坐标的
SZZ
值,
x,y,z
所施加应力网格点的坐标。
16
、渗流示例
;--------------------------
----
参数部分
bulk modulus, K 390 MPa
体积模量(土质比较硬)
shear modulus, G 280 MPa
剪切模量
soil dry density,
ρ
d 1200 kg/m3
土的密度
water density,
ρ
w
1000 kg/m3
水的密度
wall density,
ρ
wal 1500 kg/m3
档土墙的密度
permeability, k
10
?
12 m2/Pa-s
渗透系数
porosity, n 0.3
孔隙率
fluid bulk modulus, Kf 2.0 GPa
流体的体积模量
;-----------------------
以下是命令流
;
--------------------------------------------------
----
; Excavation in a
saturated soil
;-----------
-------------------------------------------
config fluid
;
设置流体算法
; --- geometrical model ---
建立模型
gen zone brick p1 12 0 0 p2 0 12 0 p3 0
0 12 size 12 12 12 rat 1 1 1
group soil
设置土组
group excavate range x 0 4
y 0 4 z 0 5
设置开挖范围组
group wal1 range x 4 5 y 0
5 z 0 7
设置档土墙
1
组
group wal2 range x 0 4 y 4 5 z 0 7
;
设置档土墙
2
组
group wall range group wal1 any group
wal2 any
档土墙
1
和
2
合并为
一个档土墙组
; --- fluid flow model ---
流体模型
model fl_iso
;
各项同性流体
prop perm 1e-12 poro 0.3
;
设置渗透系数和??比
or
??率
ini fdensity 1e3
初始化水密度
ini fmod 2.0e9 ftens -1e-3
;
初始化水的体积模量
及
??
model fl_null range group excavate
开挖部分没有水流
model fl_null range group wall
;
档土墙
不渗水
ini pp 0 grad 0 0 1e4
;
初始化孔隙水压力
fix pp range z -0.1 0.1
;
约束
应该是整个模型的底部吧?
fix pp range x -0.1 4.1 y -0.1 4.1 z
4.9 5.1
开挖部分也给约束住了,而
其他的地方不管
; ---
mechanical model ---
力学模型
model elas
弹塑性
prop bul 3.9e6 shea 2.8e6
;
设置体积模量和
剪切模量,这两个必须,
有一次我只设置了体积模量,就错的一塌糊涂
model null range
group excavate
力学模型的开挖
ini density 1.2e3
;
初始化密度
,应该是土的密度
ini density 1.5e3 range group wall
;
初始化墙(档土墙)的密度,
fix x range x -.1 .1
;
施加约束,据说差分法约束
0
的时
候,必须取一
个
-0.1<0<0.1,
范围
fix x range
x 11.9 12.1
施加约束,或者叫做边界条件
fix y range y -.1 .1
;
施加约束
fix y range y 11.9 12.1
fix z range z 11.9 12.1
; initial total stresses
出世总应力
ini szz 0 grad 0 0 -1.5e4
;z
方向的应力大一些
ini sxx 0 grad 0 0 -1.2e4
;
水平方向的,小一些
ini syy 0 grad 0 0 -1.2e4
apply nstress 0 grad 0 0 -1.2e4 range x
0.0 4.0 y 3.9 4.1 z 0.0 5.0
apply nstress 0 grad 0 0
-1.2e4 range x 3.9 4.1 y 0.0 4.0 z 0.0 5.0
apply nstress -7.5e4 range
x 0.0 4.0 y 0.0 4.0 z 4.9 5.1
; --- setting ---
设置
set gravity 0 0 10
;
设置重力加速度
; --- initial state ---
;
初始化状态
solve force 1 check initial
equilibrium
求解平衡
; --- histories ---
记录
set hist_rep 40
;
记录步为
40
hist fltime
记录时间
hist gp pp 0 0 6
;
记录某点的孔隙水压力
hist gp xdis 4 0 0
;
水平位移
hist gp xdis 4 0 2
;
记录水平位移
hist gp xdis 4 2 0
hist gp zdis 0 0 5
;
记录竖向位移
hist gp zdis 2 0 5
hist gp zdis 4 0 5
hist gp zdis 2 2 5
hist gp zdis 4 2 5
hist gp zdis 4 4 5
hist gp zdis 10 0 1
hist gp zdis 10 0 2
;
; --- excavation ---
开挖
set fluid off
;
关闭水
; apply pore pressure at walls
在墙上施加孔隙水压力
apply nstress 0 grad 0 0
-1.e4 range x 0.0 4.0 y 3.9 4.1 z 0.0 5.0
apply nstress 0 grad 0 0
-1.e4 range x 3.9 4.1 y 0.0 4.0 z 0.0 5.0
apply nstress -5.e4 range x
0.0 4.0 y 0.0 4.0 z 4.9 5.1
solve force 1
;
求解
save
保存
;
;
--- drainage ---
排水
apply remove nstress
;
撤掉刚才的压力
def relaxsetup
;
定义一个释放
函数的参数
step0 = step
end
relaxsetup
;
调用
def relax
;
定义一个释放函数
rstep = step - step0
if rstep < ncyc then
relax=1.0-(float(rstep)/float(ncyc))
else
relax = 0.0
endif
end
;
结束
set ncyc = 1000
;
先赋值,随后调用
apply nstress 0 grad 0 0 -1.e4 hist
relax &
range x 0.0 4.0 y
3.9 4.1 z 0.0 5.0
apply
nstress 0 grad 0 0 -1.e4 hist relax &
range x 3.9 4.1 y 0.0 4.0 z 0.0 5.0
apply nstress
-5.e4 hist relax &
range x
0.0 4.0 y 0.0 4.0 z 4.9 5.1
cyc ncyc
solve
;
求解
save
保存
;
;
--- percolation ---
渗透
set fluid on
;
设置水算法
fix pp 0 range x -0.1 4.1 y -0.1 4.1 z
4.9 5.1
施加孔隙水压力
cyc 9000
循环
save
;
保存
plot create excav
;
建立一个显示的视图
一下内容都是显示内容
plot set rot 200 0 195
plot set cent 6 6 6
plot set dist 39.18
plot set magn 0.8
plot set plane ori 0 0 0 normal 0 -1 0
plot add cont pp out on
plot add block group lgra
range group wall
plot add
cont pp int 10000 max 110000 range x 0 4 y 0 4 z 5
7
plot add flow plane
plot show
Ret
17
、用什么命令可以位移图中显示最大位移点的坐标?
答:用
fish
编了一个,算法好像有点烦,不过目的可以实现
你可以参考一下。
def get_gp_maxdisp
gp0_disp =
gp_xdisp(gp_head)*gp_xdisp(gp_head)
gp0_disp = gp0_disp +
gp_ydisp(gp_head)*gp_ydisp(gp_head)
gp0_disp = gp0_disp +
gp_zdisp(gp_head)*gp_zdisp(gp_head)
gp0_disp = sqrt(gp0_disp)
p_gp=gp_head
;
找最大值
loop while p_gp # null
gp_disp = gp_xdisp(p_gp)*gp_xdisp(p_gp)
gp_disp = gp_disp +
gp_ydisp(p_gp)*gp_ydisp(p_gp)
gp_disp = gp_disp +
gp_zdisp(p_gp)*gp_zdisp(p_gp)
gp_disp = sqrt(gp_disp)
if gp_disp>gp0_disp
gp0_disp=gp_disp
endif
p_gp = gp_next(p_gp)
endloop
;
找最大值的坐标
p_gp=gp_head
ss=0
loop while
p_gp # null
gp_disp =
gp_xdisp(p_gp)*gp_xdisp(p_gp)
gp_disp = gp_disp +
gp_ydisp(p_gp)*gp_ydisp(p_gp)
gp_disp = gp_disp +
gp_zdisp(p_gp)*gp_zdisp(p_gp)
gp_disp = sqrt(gp_disp)
if gp_disp=gp0_disp
ss=ss+1
xtable(1,ss)=gp_xpos(p_gp)
ytable(1,ss)=gp_ypos(p_gp)
endif
p_gp = gp_next(p_gp)
endloop
-
-
-
-
-
-
-
-
-
上一篇:最新AE插件作用详细解释
下一篇:常见的中医药材单词