-
实用标准文档
1
、怎样查看模型?
答:
plot grid
可以查看网格,
plot grid num
可以查看节点号。
2
、请问在圆柱体四周如何施加约束条件?
答:可以用
fix ... ran cylinder
end1 end2 radius r1 cylinder
end1 end2
radius r2 not
,其中
(对
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
、怎么能把一个
PLOT
的图像数据导出来以
便用其他软件绘图?
答:用
set
log on
命令,把数据导出来,转到
excel
里处理一下,
然后用
surfer
或者什么作图软件绘制就行了。
4
、用命令建立模型后,如何显示点的坐标?
答:使用
plo blo gro gpnum
on
命令
5
、关于
gauss_dev
对性质
进行高斯正态分布的问题?
答:根据手册上的说明:下面
的命令设定一个平均摩擦角为
40
度,
标准方差是±
5
%。则命令如下:
pr
op friction 40 gauss_dev 2
问题:请问
gauss_dev 2
中
的
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
(对
xy
面做镜像)
gen zone reflect dip 90 dd 90
yz
面做镜像)
(
1
)
dd
表示
y
轴正向顺时针到那条射线的夹角,
dip
表示对称参照
面与
xy
平面的夹角,对称参照面与
xy
平
面的夹角在
xy
平面的投影
是一条射线
。
首先应该按照
dd
的方向大体确定这
个面的朝向,
dd
指
的是从
y
轴正方向按顺时针(
clockwise
p>
)方向转向所要确定面的法
线方向
在
xy
平面上的投影的夹角,然后再确定
p>
dip
,
dip
指
的是从
xy
平面
转向所要确定的平面的
角.
(及
z
轴负方向转过角度)
(
2
)命令:
p>
reflect normal xyz origin xyz
(根据法线和过一点
建的面)最常用,至于实际使用过程中有人问道:
< br>normal -1 0 0
与
文案大全
实用标准文档
normal 1 0
0
的区别,我试过两者的效果是一样的,没区别,虽然
方向不同
,但表达的是同一个面。
reflect dd a
dip b origin xyz
这个就是用里建立斜面镜像的。
有一
点注意了,
镜像的时候如果是模型镜像的话,
相当于在建立一个
模
型
,
故
p>
,
在
reflect
的
前
面
要
加
建
模
的
关
p>
键
字
,
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
< br>施加的力、边界条件不会随着计算变化。
set
命令作用
于整个
网格
(
赋值全局变量
),ini
则初始化指定范围内网格点、域的偏移量。
初始应力不仅仅是重力引起的。
9
、
Tension-p
shear-p tension-n
shear-n
表示的含义
答:在
计算的循环里面
,
每个循环中
,
每个
zone
都依据
failure
criterion
处于不同的状态
,shear
和
tension
分别
表示因受剪和受
拉而处于塑性状态
.n
表示
now,p
表示
previou
s,
即分别表示在现在
和以前的循环当中处于塑性状态。
10
、
history
保存数据,
print
显示
在错误的命令流中
“原点位移
.dat
”
文件中只有:
“
Step
1
Y-Displace
”
p>
而没有保存下数值,怎么回事?我怎么才能获得
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
、
pl
ot
显示
x
、
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
是不是代表<
/p>
hist
gp
ydisp
0,0,0
,
而
-1
指得是
hist
gp
ydisp
0,0,0
为什么不是<
/p>
1
而是负值?
1)
在
plot hist m
vs n
的形式里
,m
代表
y
轴
,n
代表
x
轴
(
不管
m,n
的正负
);
2)
表示对其值作
如果大家使用
AUTOCAD
的话就明白
文案大全
实用标准文档
的含义了
,
比如上面的
hist 1 gp ydisp
的值是
0~100,
那
么
vs -1
就变成
-100~0.
以此类推
.
3)
要这么做主要是为了符合岩土工程的习惯需要
,
例如桩载荷试验
曲线
,
沉降曲线等都不是画在第一象限内。
12
、关于
的
命令注释(设置地下水位)
答:
(<
/p>
1
)
的功能是设
置地下水位面,在二维计算中,通过
water
table<
/p>
命令即可设置水位线,
在三维计算中由于地下水位是面,
因此需要作一些插值运算,以便形成水位面。这个
FISH
程序包含三
个函数
parm,aux1
和
aux2
。
parm
p>
用来设定水位的边值,即设置水位
的区域,
aux1
插值计算等值线的点,
aux2
调用
aux1
的计算结果,使
用
p>
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
函数之前,
对
table,xtable,yt
able
作一些总
的说明。
程序反复使用了这三个变量,理解了这三个变量
的含义,
< br>
这段程序就解决了大半问题了。
Itasca
的所有软件都使用了相同的数据结构储存数据,
称之为链表
结构,
类似于关系型数据库中的数据链接方法。
p>
如果有数据结构的知
识,或掌握关系型数据库的
SQL
语言,这三个变量的含义就不难理
解了,
只不过这个操作与真正的数据库操作相比,
只有两个数据变量
x,y
。我用数据库的术语作解释:
table
就是产生一个“表”
,
xtable,
ytable
的作用就是产生一个新表
(Create)
以及对表中的数据
进行取出
(Select)
、插入
(Insert)
、替换
(Update)
操作
.
4
)
FISH
函数
aux1
的作用是在
table
1
的基础上产生出另外个
table
,
table
的
ID
p>
从
11
到
17
p>
,
每个
table
有
10
个数据集。
alfa
的计算方
法是为适合
(fit)
< br>曲面而采用的坐标点算法。
def aux1
loop n(1,nptab1)
rr=xtable(1,n)
文案大全
实用标准文档
zz=ytable(1,n)
loop k(1,nprof)
case_of 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
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
当执行这个<
/p>
FISH
函数后,
生成
< br>(nptab1+10,nprof)
组数据,
这些数据
为
Aux2
调用。注意:本段程序产生
的数据是为那个特定的曲面边坡
制作的,不是一个
genera
l purpose
的
LIB
5<
/p>
)
FISH
函数
aux2
的作用是使用
WATER TABLE
face
命令产生水
面,
把
table
< br>1
的
ytable
值作为
z
坐标,
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
根据情况更改
p>
14
、一段
fish
命令的解释
def aux1
定义函数
loop
n(1,nptab1)
开始一个循环,从
1
循环到变量
nptab1
rr=xtable(1,n)
从
table 1
的
x
列中读第
n
个数付给变量
rr
zz=ytable(1,n)
从
table 1
的
y
列中读第
n
个数付给变量
zz
loop k(1,nprof)
开始第二个循环,从
1
循环到变量
nprof
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+10
的
x
列第
k
个
值等于变量
rr
ytable(n+10,k)=-40.0 table n+10
< br>的
y
列第
k
个值等于变量
-40
case 2
< br>当
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
)
apply
nvel 0.1 plane dip 60 dd 270 range left_boun
apply
施加边界条件,
plan
e
法向速度为
0.1
,
plane
面的位置:倾
角
60
(在
xoy
平面从
-Z
轴方向逆时针旋转)
,
d
d
走向
270
度,从
+y
方向绕
z
轴顺时针旋转;
(
2
)
ini szz -5e4 grad 0 0 -1e4
ini
初始边界条件,
szz=-5e4+x*0+y*0+-z*-1e4,
p>
注:
-5e4
是
r
ange
范围起点坐标的
SZZ
值,<
/p>
x,y,z
所施加应力网格点的坐标。
16
、渗流示例
< br>;------------------------------
参数部分<
/p>
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
< br>开挖部分也给约
束住了,而其他的地方不管
; --- mechanical model ---
力学模型
model elas
;
弹塑性
prop bul
3.9e6 shea 2.8e6
设置体积模量和
<
/p>
剪切模量,这两个
必须,有一次我只设置了体积模量,就错的一塌
糊涂
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
end
get_gp_maxdisp
18
、如何显示计算后模型的变形状态?
答:
pl sk magfac
**(
一个放大的数字
)
19
、如何查看剖面上任一点的位移值
文案大全
-
-
-
-
-
-
-
-
-
上一篇:Abaqus单元库 单元类型
下一篇:歧义词通达模型