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

Background

The LIN3DRECTANGULAR (or LIN2DRECTANGULAR) class creates a line Section class that is represented by its height \(h\), and width \(b\). This class computes the cross-sectional properties such as area, shear area, inertias and so on. The figure shows a representation of the Lin2DRectangular and Lin3DRectangular

Rectangular.png

The section properties are:

  • Area properties: \(A = b \, h \,, \; As_2 = \frac{5}{6} b \, h\,, \; As_3 = \frac{5}{6} b \, h\)
  • Inertia properties: \(I_{11} = \frac{1}{12} b \, h \left( b^2 + h^2 \right) \,, \; I_{22} = \frac{1}{12} h \, b^3 \,, \; I_{33} = \frac{1}{12} b \, h^3\)
  • Geometric center from bottom left corner (point of reference): \(\bar{x}_3 = \frac{b}{2}\), and \(\bar{x}_2 = \frac{h}{2}\)

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

  • addSection(tag, name='Lin3DRectangular', 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
      • 'h' : is the hight of the line cross section.
      • 'b' : is the width 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 LIN2DRECTANGULAR section can be defined using the python interface as follows:
    SVL.addSection(tag=1, name='Lin2DRectangular', model='Plain', attributes={'b': 0.25, 'h': 0.75, '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 Lin2DRectangular 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/Lin3DRectangular.cpp file provides the class implementation. A Lin3DRectangular section is created using the built-in json parse-structure provided in the Driver.hpp. A Lin3DRectangular is defined inside the "Sections" json field indicating its "Tag" as follows,

  • {
        "Sections": {
            "Tag": {
                "name" : "LIN3DRECTANGULAR",
                "model" : "PLAIN",
                "attributes": {
                    "h": double,
                    "b": double,
                    "ip": double,
                    "theta": double,
                    "material": int
                }
            }
        }
    }
    
    Variable Description
    Tag Unique Section object identifier.
    h The height of the cross section.
    b The width of the cross section.
    ip The insertion point, see Insertion Point.
    theta The section rotation angle, see Local Axes.
    materialMaterial object identifier.

    Attention
    The LIN3DRECTANGULAR / LIN2DRECTANGULAR Section object is made of one Material.
    The LIN3DRECTANGULAR / LIN2DRECTANGULAR Section is assumed to be used 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 LIN2DRECTANGULAR section of height 0.75, width 0.25 and made of material 1 is defined:
    { "Sections": { "1": { "name" : "LIN2DRECTANGULAR", "model": "PLAIN", "attributes": { "h" : 0.75, "b" : 0.25, "material": 1 } } } }