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

Background

The LoadCombo class defines how a set of Load objects are going to be combined for an specific analysis. A load combination is used in the Assembler combining all prescribed Load as

\[ \mathbf{C}_{\textrm{loads}} = \sum_{\textrm{i}=1}^{\textrm{N}_\textrm{c}} \alpha_\textrm{i} \mathbf{L}_\textrm{i} \,, \]

where \(\mathbf{L}_\textrm{i}\) are the Load to be combined, and \(\alpha_\textrm{i}\) the combination factors.

REFERENCES:

  • SAP2000, "CSI Analysis Reference Manual", Chapter XVIII: Load Cases, Load Combinations (Combos), page 351.

Pre-Analysis

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

  • addCombinationCase(tag, name, attributes):

    • tag : The identifier of this combination, i.e., tag > -1
    • name : The combination case name
    • attributes : Specific properties for the created combination, for example
      • 'folder' : Name of the folder to store solution
      • 'load' : Load identifiers to be combined
      • 'factor' : Combinational factors

    Example

    A LOAD COMBINATION can be defined using the python interface as follows:
    SVL.addCombinationCase(tag=1, name='SoilColumn', attributes={'load': [1, 2, 3, 4], 'factor': [1.0, 1.0, 1.0, 1.0]})

    Application
    Please refer to any Debugging example located at 03-Validations/01-Debugging/ to see an example on how to define LoadCombo using the addCombinationCase 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 load combination, use:

  • delCombinationCase(tag):
    • tag : The identifier of the load combination to be removed, i.e., tag > -1

Run-Analysis

The C++ 02-Run_Process/05-Loads/LoadCombo.cpp file provides with the Node class implementation. A LoadCombo is created using the built-in json parse-structure provided in the Driver.hpp. A LoadCombination is defined inside the "Combinations" json field indicating its "Tag" as follows,

  • {
        "Combinations": {
            "Tag": {
                "name" : str,
                "attributes": {
                    "folder" : str,
                    "load" : [ ],
                    "factor" : [ ]
                }
            }
        }
    }
    
    Variable Description
    Tag Unique load combination object identifier.
    name Name of the load combination.
    folder The name of the folder where results will be stored.
    load The Load object identifiers.
    factorThe combination factor for the Load objects.

    Attention
    The name is used to generate a folder where the solutions are going to be stored.
    If no LoadCombo is specified in the model, i.e., no loads are present in the mesh (or mesh partition), then neither load nor factor must be provided.
    Example

    A partition without loads, thus without LOAD COMBINATION, is prescribed as:
    { "Combinations": { "1": { "name" : "Earthquake", "attributes": { } } } }

    An earthquake LOAD COMBINATION of the form \(C = 1.0\, L_1 + 1.2\,L_2 - 0.9\,L_5\):
    { "Combinations": { "1": { "name" : "Earthquake", "attributes": { "load" : [1,2,5], "factor" : [1.0,1.2,-0.9 ] } } } }