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

Background

The LIN3DCHANNEL (or LIN2DCHANNEL) 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 Lin2DChannel and Lin3DChannel

Channel.png

The section properties are:

  • Area properties: \(A = 2 \, t_f \, b + t_w(h - 2 \, t_f) \,, \; As_2 = h \, t_w \,, \; As_3 = \frac{5}{3} b \, t_f \)
  • Inertia properties: \(I_{11} = I_{22} + I_{33} \,, \; I_{22} = \frac{1}{3} \left( h \, \bar{x}_3^3 + 2 \,t_f (b - \bar{x}_3)^3 - (h - 2 \,t_f)( \bar{x}_3 - t_w)^3 \right) \,, \; I_{33} = \frac{1}{12} \left( b\, h^3 - (b - t_w)(h - 2 \,t_f)^3 \right) \)
  • Geometric center from bottom left corner (point of reference): \(x_3 = \frac{1}{A} \left(t_f \, b^2 + \frac{1}{2} t_w^2(h - 2 \, t_f) \right) \), and \(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 Lin2DChannel or Lin3DChannel section using json format, use:

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

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

  • {
        "Sections": {
            "Tag": {
                "name" : "LIN3DCHANNEL",
                "model" : "PLAIN",
                "attributes": {
                    "h": double,
                    "b": double,
                    "tw": double,
                    "tf": 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.
tf The flange thickness of the cross section.
tw The web thickness of the cross section.
ip The insertion point, see Insertion Point.
theta The section rotation angle, see Local Axes.
materialMaterial object identifier.
Attention
The LIN3DCHANNEL / LIN2DCHANNEL Section object is made of one Material.
The LIN3DCHANNEL / LIN2DCHANNEL 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 LIN3DCHANNEL section of height 0.30, width 0.30, and thickness 0.01, made of material 1 is defined:
{ "Sections": { "1": { "name" : "LIN3DCHANNEL", "model": "PLAIN", "attributes": { "h" : 0.75, "b" : 0.25, "tw" : 0.01, "tf" : 0.01, "material": 1 } } } }