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

Background

The LIN3DUSERDEFINED (or LIN2DUSERDEFINED) class creates a line Section class that is represented its geometrical properties given by the user. Therefore, the cross-sectional properties such as area, shear area, inertias and so on must be provided. The figure shows a representation of the Lin2DAngle and Lin3DAngle respectively. The properties in grey squares are used in 2D.

UserDefined.png

The section properties to be given are:

  • Area properties: \(A \,, \; As_2\,, \; As_3\) (in 3D) or \(A \,, \; As_2\) (in 2D)
  • Inertia properties: \(J\,, \; I_{22}\,, \; I_{33}\,, \; I_{23}\) (in 3D) or \(I_{33}\) (in 2D)

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

  • addSection(tag, name='Lin3DUserDefined', 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
      • 'A' : is the cross section area.
      • 'As2' : is the shear area over the local 2-axis.
      • 'As3' : is the shear area over the local 3-axis.
      • 'J' : is the section polar moment of inertia about the local 1-axis.
      • 'I22' : is the section inertia about the local 2-axis.
      • 'I33' : is the section inertia about the local 3-axis.
      • 'I23' : is the section product of inertia.
      • 'theta' : is The section rotation angle about axis 1.
      • 'material' : is the material identifier the cross section is made out of.

    Example

    A LIN3DUSERDEFINED section can be defined using the python interface as follows:
    SVL.addSection(tag=1, name='Lin3DUserDefined', model='Plain', attributes={'A': 0.40, 'As2': 0.333333, 'As3': 0.333333, 'J': 0.0386667, 'I22': 0.00533333, 'I33': 0.0333333, 'I23': 0.0, 'material': 1})

    A LIN2DUSERDEFINED section can be defined using the python interface as follows:
    SVL.addSection(tag=1, name='Lin2DUserDefined', model='Plain', attributes={'material': 1, 'A': 0.2, 'As2': 0.166667, 'I33': 0.0166667})

    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/Lin3DUserDefined.cpp file provides the class implementation. A Lin3DUserDefined 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" : "LIN3DUSERDEFINED",
                "model" : "PLAIN",
                "attributes": {
                    "A": double,
                    "As2": double,
                    "As3": double,
                    "J": double,
                    "I22": double,
                    "I33": double,
                    "I23": double,
                    "theta": double,
                    "material": int
                }
            }
        }
    }
    
    Variable Description
    Tag Unique Section object identifier.
    A The the cross section area.
    As2 Theshear area over the local 2-axis.
    As3 The shear area over the local 3-axis.
    J The section polar moment of inertia about the local 1-axis
    I22 The the section inertia about the local 2-axis.
    I33 The the section inertia about the local 3-axis.
    I23 The section product of inertia.
    theta The section rotation angle, see Local Axes.
    materialMaterial object identifier.

    Attention
    The LIN3DUSERDEFINED / LIN2DUSERDEFINED Section object is made of one Material.
    The LIN3DUSERDEFINED / LIN2DUSERDEFINED Section is assumed to be used in linearized and finite deformations.
    The stress/strain coordinates at Section::GetStrainAt() or Section::GetStressAt() are evaluated without knowledge of the section geometry.
    If not specified theta=0.0
    Example

    A LIN2DUSERDEFINED section of made of material 1 is defined:
    { "Sections": { "1": { "name" : "LIN2DUSERDEFINED", "model": "PLAIN", "attributes": { "A": 0.4, "As2": 0.333333 "I33": 0.0333333, "material": 1, "theta": 0.0 } } } }