FLAC3D建模(复杂边坡)问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FLAC3D建模(复杂边坡)问题
总在论坛里面看帖子,学习到了很多建模的技巧,觉得基本上是通过ansys与surfer导网格到FLAC3D进行建模,这其中就存在一些问题,如果模型比较复杂的话,可能会严重失真,例如边坡(我是岩土工程专业的,比较关注边坡),如果边坡内部存在多条断层,且存在崩积物、坡积物叠加分布的现象,我们假设存在基岩上覆盖10层崩坡积物,那用ansys与surfer 导入的网格是否能够真实反映边坡的真实情况呢?(我没有具体用ansys与surfer做过,所以并不知道是否可行!),最近做的一个边坡,强风化基岩上存在15层叠加分布的崩坡积物,且边坡内部存在3条断层,考虑了很久,觉得用ansys与surfer做的话可能不合适(如果有朋友能做的话,请告诉我,先谢谢了!),最后考虑用AutoCAD建模,然后导入FLAC3D的方法,模型建立起来后,觉得效果还不错,下面就说下我的方法,有什么不恰当之处,还请各位批评指正。
1、首先在AutoCAD中建模,因为我觉得我们的剖面图基本上是AutoCAD绘制的,尽量就CAD建模的话可以省下不少事(个人观点),建立3维模型需要尽量多的剖面,因此,在边坡表面地形变化处、坡体内部不同成因岩土体处都需要做剖面;
2、剖面做好后,进行剖面分层,就是在剖面上尽量细致的划分出不同成因性质的岩土体层,例如崩积物、坡积物,之后利用AutoCAD的3dmesh功能进行网格划分;
3、基本上只需要brick与wedge就可以了,自己编写一个VB的程序,可以读出3dmesh网格节点并输出成*.dat文件;
例如:Z方向为单位长度,读取3dmesh(brick)程序
Dim AcadApp As AutoCAD.AcadApplication
Set AcadApp = GetObject(, "AutoCAD.Application")
Dim Mydocument As AcadDocument
Set Mydocument = AcadApp.ActiveDocument
Dim Myentity As AcadPolygonMesh
Dim Mysel As AcadSelectionSet
Dim fil_type(0) As Integer
Dim fil_data(0) As Variant
Dim Mycoordinates As Variant
fil_type(0) = 0
fil_data(0) = "olygonMesh"
Set Mysel = Mydocument.SelectionSets.Add("Mysel")
Dim i, j, k As Integer
Mysel.SelectOnScreen
For Each Myentity In Mysel
Mycoordinates = Myentity.Coordinates
Next
Open App.Path & "\" & ".dat" For Append As #1
For i = 0 To (j * 6 - 1) Step 6
Print #1, "gen zone brick size 1,1,1" & " &"
Print #1, "p0" & "(" & Round(Mycoordinates(i), 4) & "," & Round(Mycoordi nates(i + 1), 4) & "," & Round(Mycoordinates(i + 2), 4) & ")&"
Print #1, "p1" & "(" & Round(Mycoordinates(i + 3), 4) & "," & Round(Mycoordinates(i + 4), 4) & "," & Round(Mycoordinates(i + 5), 4) & ")&"
Print #1, "p2" & "(" & Round(Mycoordinates(i), 4) & "," & Round(Mycoordinates(i + 1), 4) & "," & Round((Mycoordinates(i + 2) - 1), 4) & ")&"
Print #1, "p3" & "(" & Round(Mycoordinates(i + 6), 4) & "," & Round(Mycoordinates(i + 7), 4) & "," & Round(Mycoordinates(i + 8), 4) & ")&"
Print #1, "p4" & "(" & Round(Mycoordinates(i + 3), 4) & "," & Round(Mycoordinates(i + 4), 4) & "," & Round(Mycoordinates(i + 5) - 1, 4) & ")&"
Print #1, "p5" & "(" & Round(Mycoordinates(i + 6), 4) & "," & Round(Mycoordinates(i + 7), 4) & "," & Round(Mycoordinates(i + 8) - 1, 4) & ")&"
Print #1, "p6" & "(" & Round(Mycoordinates(i + 9), 4) & "," & Round(Mycoordinates(i + 10), 4) & "," & Round(Mycoordinates(i + 11), 4) & ")&"
Print #1, "p7" & "(" & Round(Mycoordinates(i + 9), 4) & "," & Round(Mycoordinates(i + 10), 4)