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

Background

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

\[ \sigma = \begin{cases} 0, & \epsilon \leq \epsilon_g \\ E(\epsilon - \epsilon_g), & \epsilon \geq \epsilon_g \end{cases} \]

where \(\sigma\) is the uniaxial stress, \(\epsilon\) is the uniaxial strain, \(E\) is the elasticity modulus, \(\epsilon_g\) is gap from which the material will take stress, and \(\epsilon_y\) is the yielding strain. The Figure shows the constitutive law of this material. No hysteresis behavior is present for this formulation.

Elastic1DGap.png

REFERENCE:

  • Bathe, K. Jurgen, "Finite Element Procedures", Chapter 6: pages 485-491, 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 Elastic1DGap material using json format, use:

  • addMaterial(tag, name='Elastic1DGap', 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 elastic modulus.
      • 'gap' : is the gap or separation.
      • 'behavior' : is the gap behavior (0: tension, 1: compression).

    Example

    A ELASTIC1DGAP can be defined using the python interface as follows:
    SVL.addMaterial(tag=1, name='Elastic1DGap', attributes={'E': 50.0, 'gap': 0.2, 'behavior': 0})

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

  • {
        "Materials": {
            "Tag": {
                "name" : "ELASTIC1DGAP",
                "attributes": {
                    "E": double,
                    "gap": double,
                    "behavior": int
                }
            }
        }
    }
    
    Variable Description
    Tag Unique material object identifier.
    E Represents the elasticity modulus.
    gap Represents the gap (strain or separation)
    behavior Represents if it is a tension (0) or compressive (1) gap.

    Attention
    This material should only be assigned to ZeroLength1D.
    To create a compression-only gap element, NEGATIVE values need to be specified for fy and gap.
    Example

    A uniaxial compressive ELASTIC1DGAP with elasticity modulus 50, and a gap of 0.2 is defined:
    { "Materials": { "1": { "name" : "ELASTIC1DGAP", "attributes": { "E" : 50.0, "gap" : 0.2, "behavior" : 1 } } } }