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

Background

The Damping class creates a class which emulates loss of energy in an structural element. In other words, the Damping class defines how the damping \(\mathbf{C}\) matrix will be constructed. This matrix is assembled using the object, and currently there are 3 options available:

  • The FREE damping assumes no viscous contribution, that is,

    \[ \mathbf{C} = \mathbf{0} \,. \]

  • The RAYLEIGH damping known as proportional damping or classical damping model expresses damping as a linear combination of the mass and stiffness matrices, that is,

    \[ \mathbf{C} = a_m \,\mathbf{M} + a_k \,\mathbf{K} \,. \]

  • The CAUGHEY damping is an extension the classical damping matrix, that is,

    \[ \mathbf{C} = \mathbf{M} \sum_{\textrm{i}=1}^{N_p} a_\textrm{j} \left( \mathbf{M}^{-1} \mathbf{K} \right) \,. \]

REFERENCES:

  • Caughey, T. K. (1960). “Classical normal modes in damped linear dynamic systems.” Journal of Applied Mechanics (ASME), 27, 269-271.
  • Bernal D. (1994). “Viscous damping in inelastic structural response.” J. Struct. Eng., 10.1061/(ASCE)0733-9445(1994)120:4(1240), 1240-1254.
  • Clough R. W, Penzien J. (2003). Dynamics of Structures (2nd edition-revised). Computers and Structures, Inc.: Berkeley, CA.

Pre-Analysis

The python 01-Pre_Process/Method/Attach.py file provides with an interface to populate the Entities dictionary. A Surface can be added using the addDamping() function. This function will transform the provided information into json format to be parse in the Run-Analysis.

  • addDamping(tag, name, attributes):

    • tag : The identifier of this damping model, i.e., tag > -1
    • name : The damping class name (Free, Rayleigh, Caughey)
    • attributes : Specific properties for the created damping, for example
      • name=Free:
      • name=Rayleigh:
        • 'list' : The element identifier that share this damping
        • 'ak' : The stiffness proportional factor used in Rayleigh Damping
        • 'am' : The mass proportional factor used in Rayleigh Damping
      • name=Caughey:
        • 'list' : The element identifier that share this damping
        • 'ai' : Parameters that multiplies mass/stiffness matrix for the Caughey damping.

    Example

    A DAMPING can be defined using the python interface as follows:
    SVL.addDamping(tag=1, name='Rayleigh', attributes={'am': 0.1244195110, 'ak': 0.0007878958, 'list': 'ALL'})

    Application
    Please refer to the D21-DY_Damped_Rectangular_BodyLoad_Elastic_Frame2.py file located at 03-Validations/01-Debugging/ to see an example on how to define damping using the addDamping function.

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

  • delDamping(tag):
    • tag : The identifier of the damping model to be removed, i.e., tag > -1

Run-Analysis

The C++ 02-Run_Process/12-Utilities/Damping.cpp file provides the damping declaration. A Damping is added to a Element using the Element::SetDamping() member function. A Damping is defined inside the "Dampings" json field indicating its "Tag" as follows,

  • A FREE damping object is created using the built-in parse-structure provided in the Parser as,
    {
        "Dampings": {
            "Tag": {
                "name" : "FREE",
                "attributes": {
                    "list" : [ ]
                }
            }
        }
    }
    
    Variable Description
    Tag Unique Damping object identifier.
    list List of element identifiers that share this Damping model.
  • A RAYLEIGH damping object is created using the built-in parse-structure provided in the Parser as,
    {
        "Dampings": {
            "Tag": {
                "name" : "RAYLEIGH",
                "attributes": {
                    "am" : double,
                    "ak" : double,
                    "list" : [ ]
                }
            }
        }
    }
    
    Variable Description
    Tag Unique Damping object identifier.
    am Coefficient associated to mass matrix to construct the damping \(\textbf{C}\) matrix.
    ak Coefficient associated to stiffness matrix to construct the damping \(\textbf{C}\) matrix.
    list List of element identifiers that share this Damping model.
  • A CAUGHEY damping object is created using the built-in parse-structure provided in the Parser as,
    {
        "Dampings": {
            "Tag": {
                "name" : "CAUGHEY",
                "attributes": {
                    "aj" : [ ],
                    "list" : [ ]
                }
            }
        }
    }
    
    Variable Description
    Tag Unique Damping object identifier.
    aj List of parameters to construct the damping \(\textbf{C}\) matrix.
    list List of element identifiers that share this Damping model.

    Example

    A FREE DAMPING applied to elements with identifier 1,2, and 3 is constructed as:
    { "Dampings": { "1": { "name" : "FREE", "attributes": { "list" : [1,2,3] } } } }

Attention
The present formulation allows group of elements to have different damping models.
FREE and RAYLEIGH damping models are supported. CAUGHEY damping model will be implemented in the future.
The RAYLEIGH damping models considers the initial stiffness matrix to construct the damping \(\textbf{C}\) matrix.
A element can have associated only one damping model. If several damping model are defined (for the same element), only the last one will be active.