sectionFiberDivide

Section fiber element generate program based on python language


Keywords
fiber, element, section, mesh
License
MIT
Install
pip install sectionFiberDivide==1.0.4

Documentation

Generate sectional fibers based on python programming

Install the package in PyPI

pip install sectionFiberDivide

After installation through python script, then download gmsh (download gmsh) that satifies your operation system. And copy gmsh.exe to your working directory.

The followings are some basic examples, you can also obtain these examples using help(circleSection) and help(polygonSection).

Circle section fiber generate

from sectionFiberMain import circleSection
outD=2  # the diameter of the outside circle
coverThick=0.1  # the thinckness of the cover concrete
outbarD=0.03  # outside bar diameter
outbarDist=0.15  # outside bar space
coreSize=0.2  # the size of core concrete fiber
coverSize=0.2  # the size of cover concrete fiber
plotState=False  # plot the fiber or not plot=True or False
corFiber,coverFiber,barFiber=circleSection(outD, coverThick, outbarD, outbarDist, coreSize, coverSize,plotState)

CircleHole section fiber generate

from sectionFiberMain import circleSection
outD = 2  # the diameter of the outside circle
coverThick = 0.06  # the thinckness of the cover concrete
outbarD = 0.03  # outside bar diameter
outbarDist = 0.15  # outside bar space
coreSize = 0.1  # the size of core concrete fiber
coverSize = 0.1  # the size of cover concrete fiber
plotState = True  # plot the fiber or not plot=True or False
inD =1 # the diameter of the inside circle
inBarD=0.03 # inside bar diameter
inBarDist=0.15 # inside bar space
corFiber, coverFiber, barFiber = circleSection(outD, coverThick, outbarD, outbarDist, coreSize, coverSize,
                                                   plotState,inD,inBarD,inBarDist)

Polygen section fiber generate

from sectionFiberMain import polygonSection
 # the outside vertexes consecutively numbering and coordinate values in local y-z plane in dict container
     outSideNode = {1: (3.5, 3), 2: (1.5, 5), 3: (-1.5, 5), 4: (-3.5, 3), 5: (-3.5, -3), 6: (-1.5, -5), 7: (1.5, -5),
                    8: (3.5, -3)}
   # the outside vertexes loop consecutively numbering in dict container
   outSideEle = {1: (1, 2), 2: (2, 3), 3: (3, 4), 4: (4, 5), 5: (5, 6), 6: (6, 7), 7: (7, 8), 8: (8, 1)}
   coverThick = 0.06  # the thinck of the cover concrete
   coreSize = 0.2  # the size of the core concrete fiber elements
   coverSize = 0.3  # the size of the cover concrete fiber elements
   outBarD = 0.032  # outside bar diameter
   outBarDist = 0.2  # outside bar space
   plotState=True  # plot the fiber or not plot=True or False
   autoBarMesh=True #if false provide the barControlNodeDict and barEleDict
   userBarNodeDict=None # {1:(y1,z1),2:(y2,z2),...} bar line end nodes
   userBarEleDict=None # {1:(nodeI,nodeJ,barD,barDist),...}  bar line end nodes number and diameter and distance
   coreFiber,coverFiber,barFiber=polygonSection(outSideNode, outSideEle, coverThick, coreSize, coverSize,\
                                       outBarD, outBarDist,plotState,autoBarMesh)

PolygenThreeHole section fiber generate

from sectionFiberMain import polygonSection
outSideNode = {1: (0, 0), 2: (7, 0), 3: (7,3), 4: (0, 3)}
 # the outside vertexes loop consecutively numbering in dict container
 outSideEle = {1: (1, 2), 2: (2, 3), 3: (3, 4), 4: (4,1)}
 # the inside vertexes consecutively numbering and coordinate values in local y-z plane in list container
 inSideNode = [
     {1: (1, 1), 2: (2, 1), 3: (2, 2), 4: (1, 2)},
     {1: (3, 1), 2: (4, 1), 3: (4, 2), 4: (3, 2)},
     {1: (5, 1), 2: (6, 1), 3: (6, 2), 4: (5, 2)}]
 # the inside vertexes loop consecutively numbering in dict container
 inSideEle = [{1: (1, 2), 2: (2, 3), 3: (3, 4), 4: (4, 1)},
              {1: (1, 2), 2: (2, 3), 3: (3, 4), 4: (4, 1)},
              {1: (1, 2), 2: (2, 3), 3: (3, 4), 4: (4, 1)}]
 coverThick = 0.06  # the thinck of the cover concrete
 coreSize = 0.2  # the size of the core concrete fiber elements
 coverSize = 0.3  # the size of the cover concrete fiber elements
 outBarD = 0.032  # outside bar diameter
 outBarDist = 0.2  # outside bar space
 plotState = True  # plot the fiber or not plot=True or False
 autoBarMesh=True #if false provide the barControlNodeDict and barEleDict
 userBarNodeDict=None
 userBarEleDict=None
 inBarD=0.032  # inside bar diameter (None)
 inBarDist=0.2  # inside bar space (None)
 coreFiber,coverFiber,barFiber=polygonSection(outSideNode, outSideEle, coverThick, coreSize, coverSize,\
                                     outBarD, outBarDist,plotState,autoBarMesh,userBarNodeDict,userBarEleDict,\
         inSideNode,inSideEle,inBarD,inBarDist)
         

polygon with one hole section user bar mesh example

from sectionFiberMain import polygonSection
# the outside vertexes consecutively numbering and coordinate values in local y-z plane in dict container
 outSideNode = {1: (2.559, 2.1), 2: (-2.559, 2.1), 3: (-2.559, 1.6), 4: (-3.059, 1.6), 5: (-3.059, -1.6),
                6: (-2.559, -1.6), 7: (-2.559, -2.1), 8: (2.559, -2.1), 9: (2.559, -1.6), 10: (3.059, -1.6), 11: (3.059, 1.6),
                12: (2.559, 1.6)}
 # the outside vertexes loop consecutively numbering in dict container
 outSideEle = {1: (1, 2), 2: (2, 3), 3: (3, 4), 4: (4, 5), 5: (5, 6), 6: (6, 7), 7: (7, 8), 8: (8, 9), 9: (9, 10),\
               10: (10, 11), 11: (11, 12), 12: (12, 1)}
 # the inside vertexes consecutively numbering and coordinate values in local y-z plane in list container
 inSideNode = [{1: (1.809, 1.35), 2: (-1.809, 1.35), 3: (-2.309, 0.85), 4: (-2.309, -0.85), 5: (-1.809, -1.35), \
                6: (1.809, -1.35), 7: (2.309, -0.85), 8: (2.309, 0.85)}] ##(None)
 # the inside vertexes loop consecutively numbering in dict container
 inSideEle = [{1: (1, 2), 2: (2, 3), 3: (3, 4), 4: (4, 5), 5: (5, 6), 6: (6, 7), 7: (7, 8), 8: (8, 1)}]
 coverThick = 0.06  # the thinck of the cover concrete
 coreSize = 0.2  # the size of the core concrete fiber elements
 coverSize = 0.3  # the size of the cover concrete fiber elements
 outBarD = 0.032  # outside bar diameter(None)
 outBarDist = 0.2  # outside bar space (None)
 plotState=True  # plot the fiber or not plot=True or False
 autoBarMesh=False #if false provide the barControlNodeDict and barEleDict
 userBarNodeDict={1: (2.975, 1.516), 2: (2.475, 1.516), 3: (2.475, 2.016), 4: (-2.475, 2.016), 5: (-2.475, 1.516),
                6: (-2.975, 1.516),7: (-2.975, -1.516), 8: (-2.475, -1.516), 9: (-2.475, -2.016), 10: (2.475, -2.016),
                11: (2.475, -1.516), 12: (2.975, -1.516)} #{1:(y1,z1),2:(y2,z2),...} (None)
 userBarEleDict={1: (1, 2,0.01,0.2), 2: (2, 3,0.01,0.2), 3: (3, 4,0.01,0.2), 4: (4, 5,0.01,0.2),\
                 5: (6, 5,0.01,0.2), 6: (5, 2,0.01,0.2), 7: (7, 8,0.01,0.2), 8: (8, 9,0.01,0.2), 9: (9, 10,0.01,0.2),
               10: (10, 11,0.01,0.2), 11: (12, 11,0.01,0.2), 12: (11, 8,0.01,0.2),\
                 }  #{1:(nodeI,nodeJ,barD,barDist)}(None)
 inBarD=0.032  # inside bar diameter (None)
 inBarDist=0.2  # inside bar space (None)
 coreFiber,coverFiber,barFiber=polygonSection(outSideNode, outSideEle, coverThick, coreSize, coverSize,\
                                     outBarD, outBarDist,plotState,autoBarMesh,userBarNodeDict,userBarEleDict,\
         inSideNode,inSideEle,inBarD,inBarDist)