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

Background

The LIN3DCIRCULAR (or LIN2DCIRCULAR) 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 Lin2DCircular and Lin3DCircular

Circular.png

The section properties are:

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

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 Lin2DCircular or Lin3DCircular section using json format, use:

  • addSection(tag, name='Lin3DCircular', 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
      • 'r' : is the radius of the line cross 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 LIN3DCIRCULAR section can be defined using the python interface as follows:
    SVL.addSection(tag=1, name='Lin3DCircular', model='Plain', attributes={'b': 0.30, 'h': 0.30, 'tw': 0.01, 'tf': 0.01, 'material': 1})

    Application
    Please refer to the D18-DY_Free_Circular_2DPointLoad_Elastic_Frame2.py file located at 03-Validations/01-Debugging/ to see an example on how to define a Lin3DCircular 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/Lin3DCircular.cpp file provides the class implementation. A Lin3DCircular section is created using the built-in json parse-structure provided in the Driver.hpp. A Lin3DCircular is defined inside the "Sections" json field indicating its "Tag" as follows,

  • {
        "Sections": {
            "Tag": {
                "name" : "LIN3DCIRCULAR",
                "model" : "PLAIN",
                "attributes": {
                    "r": double,
                    "ip": double,
                    "theta": double,
                    "material": int
                }
            }
        }
    }
    
    Variable Description
    Tag Unique Section object identifier.
    r The 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 LIN3DCIRCULAR / LIN2DCIRCULAR Section object is made of one Material.
    The LIN3DCIRCULAR / LIN2DCIRCULAR 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 LIN3DCIRCULAR section of radius 0.30 made of material 1 is defined:
    { "Sections": { "1": { "name" : "LIN3DCIRCULAR", "model": "PLAIN", "attributes": { "r" : 0.30, "material": 1 } } } }