Seismo-VLAB  1.3
An Open-Source Finite Element Software for Meso-Scale Simulations

Background

The LIN3DCIRCULARTUBE (or LIN2DCIRCULARTUBE) class creates a line Section that is represented by its height \(h\), width \(b\), flange thickness \(t_f\), and web thickness \(t_w\). This class computes the cross-sectional properties such as area, shear area, inertias and so on. The figure shows a representation of the Lin2DCircularTube and Lin3DCircularTube

CircularTube.png

The section properties are:

  • Area properties: \(A = \pi\,(r_e^2 - r_i^2) \,, \; As_2 = \frac{\pi}{2}\,(r_e^2 - r_i^2) \,, \; As_3 = \frac{\pi}{2}\,(r_e^2 - r_i^2) \)
  • Inertia properties: \(I_{11} = \frac{\pi}{2}\,(r_e^4 - r_i^4) \,, \; I_{22} = \frac{\pi}{4}\,(r_e^4 - r_i^4) \,, \; I_{33} = \frac{\pi}{4}\,(r_e^4 - r_i^4)\)
  • Geometric center from bottom left corner (point of reference): \(x_3 = r_e \), and \(x_2 = r_e\)

REFERENCE:

  • MIDAS Civil User's Manual: analysis for civil structures, Area Moment of Inertia, Pages 77-78
  • MIDAS Civil User's Manual: analysis for civil structures, Effective Shear Areas, Pages 68-69

Pre-Analysis

The python Pre-Analysis in the 01-Pre_Process/Method/Attach.py file provides with an interface to populate the Entities dictionary. This file contains several functions to populate specific fields. For example, to create a Lin2DCircularTube or Lin3DCircularTube section using json format, use:

  • addSection(tag, name='Lin2DCircularTube', model='Plain', attributes):

    • tag : The identifier of this section, i.e., tag > -1
    • name : Seismo-VLAB section class name
    • model : model of the section, i.e., model=plain,fiber
    • attributes : Specific properties for the created section, for example
      • 're' : is the thickness of the area section.
      • 'ri' : is the thickness of the area section.
      • 'ip' : is the section insertion point.
      • 'theta' : is The section rotation angle about axis 1.
      • 'material' : is the material identifier the cross section is made out of.

    Example

    A LIN2DRECTANGULARTUBE section can be defined using the python interface as follows:
    SVL.addSection(tag=1, name='Lin2DCircularTube', model='Plain', attributes={'re': 0.25, 'ri': 0.245, 'material': 1})

    Application
    Please refer to the D01-ST_Lin_2DBernoulli_Elastic_Frame2.py file located at 03-Validations/01-Debugging/ to see an example on how to define a Lin2DCircularTube section.

On the contrary, the 01-Pre_Process/Method/Remove.py file provides with an interface to depopulate the Entities dictionary. For example, to remove an already define Section, use:

  • delSection(tag):
    • tag : The identifier of the section to be removed, i.e., tag > -1

Run-Analysis

The C++ Run-Analysis in the 02-Run_Process/03-Sections/01-Plain/Lin3DCircularTube.cpp file provides the class implementation. A Lin3DCircularTube section is created using the built-in json parse-structure provided in the Driver.hpp. A Lin3DCircularTube is defined inside the "Sections" json field indicating its "Tag" as follows,

  • {
        "Sections": {
            "Tag": {
                "name" : "LIN3DCIRCULARTUBE",
                "model" : "PLAIN",
                "attributes": {
                    "ri": double,
                    "re": double,
                    "ip": double,
                    "theta": double,
                    "material": int
                }
            }
        }
    }
    
    Variable Description
    Tag Unique Section object identifier.
    re The external radius of the cross section.
    ri The internal radius of the cross section.
    ip The insertion point, see Insertion Point.
    theta The section rotation angle, see Local Axes.
    materialMaterial object identifier.

    Attention
    The LIN3DCIRCULARTUBE / LIN2DCIRCULARTUBE Section object is made of one Material.
    The LIN3DCIRCULARTUBE / LIN2DCIRCULARTUBE Section is assumed to be use in linearized and finite deformations.
    The stress/strain coordinates at Section::GetStrainAt() or Section::GetStressAt() must be refereed to the point of reference shown in figure.
    If stress/strain are evaluated outside the section domain, the response is zero.
    If not specified ip=10 and theta=0.0
    Example

    A LIN2DRECTANGULARTUBE section of radius 0.25 and thickness 0.05, made of material 1 is defined:
    { "Sections": { "1": { "name" : "LIN3DCIRCULARTUBE", "model": "PLAIN", "attributes": { "re" : 0.25, "ri" : 0.245, "material": 1 } } } }