OpenSees虽然可以简单的显示模型,但是其中很多的东西还是不可见的,纤维截面划分就是其中一个,所以必须要弄清楚纤维截面划分使用方法。
在OpenSees中,局部坐标系和整体坐标系有如下约束:i节点到j节点约定为局部坐标系的x方向,截面的方向按照z方向的坐标确定,所以如果建立三维模型,一般将截面的长边方向认定为z方向,这样按照geomTransf命令就可以将截面的强轴定位主受力方向,如下图所示。
按照这样的坐标系,就可以进行截面的划分了,划分命令如下所示:
1 2 3 4 5 |
section Fiber $secTag { fiber <fiber arguments> patch <patch arguments> layer <layer arguments> } |
OpenSees的截面划分有三种形式,分别是fiber、patch和layer。下面分别介绍一下。
1.fiber命令
fiber命令适用于单束纤维的划分,按照每一束纤维的位置,输入纤维的界面属性。
1 2 3 4 5 6 |
fiber $yLoc $zLoc $A $matTag $yLoc y coordinate of the fiber in the section (local coordinate system) $zLoc z coordinate of the fiber in the section (local coordinate system) $A area of fiber $matTag material tag of the pre-defined UniaxialMaterial object used to represent the stress-strain for the area of the fiber |
2.patch命令
patch适用于截面均匀划分的情况,主要是矩形截面的划分,也包含不规则四边形和扇形截面的划分。
下列命令生成一个四边形均匀纤维划分,四边形边缘使用I、J、K、L定义,注意方向为逆时针方向。
1 2 3 4 5 6 7 8 9 |
patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL $matTag tag of previously defined material (UniaxialMaterial tag for a FiberSection or NDMaterial tag for use in an NDFiberSection) $numSubdivIJ number of subdivisions (fibers) in the IJ direction. $numSubdivJK number of subdivisions (fibers) in the JK direction. $yI $zI y & z-coordinates of vertex I (local coordinate system) $yJ $zJ y & z-coordinates of vertex J (local coordinate system) $yK $zK y & z-coordinates of vertex K (local coordinate system) $yL $zL y & z-coordinates of vertex L (local coordinate system) |
下列命令生成一个矩形截面均匀纤维划分,矩形截面使用I、J定义,其中I节点为矩形的左下角,J为矩形的右上角,具体可以参看下图所示。
1 2 3 4 5 6 7 |
patch rect $matTag $numSubdivY $numSubdivZ $yI $zI $yJ $zJ $matTag tag of previously defined material (UniaxialMaterial tag for a FiberSection or NDMaterial tag for use in an NDFiberSection) $numSubdivY number of subdivisions (fibers) in the local y direction. $numSubdivZ number of subdivisions (fibers) in the local z direction. $yI $zI y & z-coordinates of vertex I (local coordinate system) $yJ $zJ y & z-coordinates of vertex J (local coordinate system) |
下列命令生成一个扇形截面的均匀纤维划分。
1 2 3 4 5 6 7 8 9 10 11 12 |
patch circ $matTag $numSubdivCirc $numSubdivRad $yCenter $zCenter $intRad $extRad <$startAng $endAng> $matTag tag of previously defined material (UniaxialMaterial tag for a FiberSection or NDMaterial tag for use in an NDFiberSection) $numSubdivCirc number of subdivisions (fibers) in the circumferential direction $numSubdivRad number of subdivisions (fibers) in the radial direction. $yCenter $zCenter y & z-coordinates of the center of the circle $intRad internal radius $extRad external radius $startAng starting angle (optional. default=0.0) $endAng ending angle (optional. default=360.0) |
3.layer命令
layer命令适用于生成沿直线或者沿曲线布置的钢筋纤维。
下列命令用于生成沿直线布置的钢筋纤维。
1 2 3 4 5 6 7 8 |
layer straight $matTag $numFiber $areaFiber $yStart $zStart $yEnd $zEnd $matTag material tag of previously created material (UniaxialMaterial tag for a FiberSection or NDMaterial tag for use in an NDFiberSection) $numFibers number of fibers along line $areaFiber area of each fiber $yStart $zEnd y and z-coordinates of first fiber in line (local coordinate system) $$yEnd $zEnd y and z-coordinates of last fiber in line (local coordinate system) |
下列命令用于生成沿圆周布置的钢筋纤维。
1 2 3 4 5 6 7 8 9 10 11 |
layer circ $matTag $numFiber $areaFiber $yCenter $zCenter $radius <$startAng $endAng> $matTag material tag of previously created material (UniaxialMaterial tag for a FiberSection or NDMaterial tag for use in an NDFiberSection) $numFiber number of fibers along arc $areaFiber area of each fiber $yCenter $zCenter y and z-coordinates of center of circular arc $radius radius of circlular arc $startAng starting angle (optional, default = 0.0) $endAng ending angle (optional, default = 360.0 - 360/$numFiber) |
注意:
纤维截面的划分必须按照确定的方向和顺序进行划分,一般来说截面划分的起点位于坐标系的第三象限,按照逆时针方向进行划分,划分完成之后,应仔细核对,避免出现计算错误。
站里都是干货,厉害!