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

Background

The Elastic1DFiber class creates a uniaxial material with the constitutive equation given as

\[ \sigma = E \, \epsilon \]

where \(\sigma\) is the uniaxial stress, \(\epsilon\) is the uniaxial strain, and \(E\) is the elasticity modulus. The Figure shows the constitutive law of this material. No hysteresis behavior is present for this formulation.

Elastic1DFiber.png

REFERENCE:

  • Bathe, K. Jurgen, "Finite Element Procedures", Chapter 4: pages 194, Table 4.3, Prentice-Hall, 1996.

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 Elastic1DFiber material using json format, use:

  • addMaterial(tag, name='Elastic1DFiber', attributes):

    • tag : The identifier of this material, i.e., tag > -1
    • name : Seismo-VLAB material class name
    • attributes : Specific properties for the created material, for example
      • 'E' : is the modulus of elasticity.
      • 'nu' : is the Poisson’s ratio.
      • 'rho' : is the material density. Can be omitted for static analysis.

    Example

    A ELASTIC1DFIBER can be defined using the python interface as follows:
    SVL.addMaterial(tag=1, name='Elastic1DFiber', attributes={'E': 200.0, 'nu': 0.25, 'rho': 0.0})

    Application
    Please refer to the A15-DY_1D_Material_Fiber_Elastic.py file located at 03-Validations/01-Debugging/ to see an example on how to define a PlasticPlaneStrainBA material.

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 Material, use:

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

Run-Analysis

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

  • {
        "Materials": {
            "Tag": {
                "name" : "ELASTIC1DFIBER",
                "attributes": {
                    "E": double,
                    "nu": double,
                    "rho": double
                }
            }
        }
    }
    
    Variable Description
    Tag Unique material object identifier.
    E Represents the elasticity modulus.
    nu Represents the Poisson's ratio.
    rho Represents the material density.

    Attention
    This material can only be assigned to section such as the Fib3DLineSection.
    Example

    A uniaxial ELASTIC1DFIBER with elasticity modulus 200, Poisson's ratio 0.25, and no density is defined:
    { "Materials": { "1": { "name" : "ELASTIC1DFIBER", "attributes": { "E" : 200.0, "nu" : 0.25, "rho": 0.0 } } } }