Skip to content

AnalysisControl

The AnalysisControl class provides a unified interface to create different types of analysis control settings and includes nested classes for specific analysis control types.

Nested Classes


  • MainControlData: Main control data for analysis settings
  • PDelta: P-Delta analysis control for geometric nonlinear analysis
  • Buckling: Buckling analysis control for eigenvalue buckling analysis
  • EigenValue: Eigen vector analysis control for dynamic analysis
  • Settlement: Settlement analysis control for settlement analysis

Complete Example


from midas_civil import*

MAPI_KEY("eyJ1ciI6IklOMjQwN0ZZVDIiLCJwZyI6ImNpdmlsIiwi") #Paste your Mapi Key

# Create nodes and elements for the model
for j in range(6):
    for i in range(2):
        Node(i*10,j*2,0)
        Node.create()

j = 0
for k in range(6):   
    for i in range(1,2):
        Element.Beam(i +j,i+1 +j)
        Element.create()
    j = j + 2

# Load Cases
Load_Case("D","DL")
Load_Case("L","LL") 

Load_Case.create()

# Main Control Data - Basic analysis control settings
AnalysisControl.MainControlData(
    ardc=True,
    anrc=True,
    iter=30,
    tol=0.0005,
    csecf=False,
    trs=True,
    crbar=False,
    bmstress=True,
    clats=False
)

# P-Delta Analysis Control
AnalysisControl.PDelta(
    iter=5,
    tol=0.00001,
    load_case_data=[["DL", 1.0], ["LL", 0.5]]
)

# Buckling Analysis Control
AnalysisControl.Buckling(
    mode_num=8,
    opt_positive=False,
    load_factor_from=-2.0,
    load_factor_to=5.0,
    opt_consider_axial_only=True,
    load_case_data=[["DL", 1.0, 1], ["LL", 1.0, 0]]
)

# Eigen Value Analysis Control - LANCZOS method
AnalysisControl.EigenValue(
    analysis_type="LANCZOS",
    ifreq=15,
    frequency_range=[0, 1600],
    bstrum=True
)

# Settlement Analysis Control
AnalysisControl.Settlement(
    concurrent_calc=True,
    concurrent_link=False
)