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

Background

The Restrain enforces no displacement for some degrees of freedom in the model. This attribute is provided in the freedof vector in Node. In the figure an example of restrain applied in the for 2D model is shown.

Restrain.png

REFERENCE:

  • Carlos Felippa. "Introduction to Finite Element Methods (ASEN 5007)": Multifreedom Constraints I, Fall 2005.

Pre-Analysis

The python 01-Pre_Process/Method/Attach.py file provides with an interface to prescribe restrains. A Restrain can be created using the addRestrain() function. This function will transform the provided information into json format to be parse in the Run-Analysis.

  • addRestrain(tag, dof):

    • tag : The identifier of the Node to apply the restraint, i.e., tag > -1
    • dof : The vector with local numbering of the degree-of-freedom to restrain.

    Example

    A RESTRAIN applied to node 10 in X,Y,Z direction can be defined using the python interface as follows:
    SVL.addRestrain(tag=10, dof=[1,2,3])

    Application
    Please refer to the D07-ST_Lin_2DConstrainedBuilding_Elastic_Frame2.py file located at 03-Validations/01-Debugging/ to see an example on how to define restraints using the addRestrain function.

Run-Analysis

The Restraint as an object does not exists in the Run-Analysis. This entity is prescribed using a -1 value in the freedof field in Nodes in the json input file. Therefore, in our previous example,

Example

A fixed tri-dimensional NODE with 3 degree of freedom and coordinate (0.0, 0.0, 10.5) will look like
{ "Nodes": { "10": { "ndof" : 3, "totaldof": [12, 13, 14], "freedof" : [-1, -1, -1], "coords" : [0.0, 0.00, 10.50] } } }