Non-linear Static Analysis

The NonlinearSettings object encapsulates all the settings for a non-linear analysis including which non-linear effects are to be considered, iteration tolerances and limits, and which load cases are to be analysed.  The properties of this object are summarised below.

 

Property

Type

Description

AxialShortening

Boolean

Get/Set whether axial shortening is to be considered in the analysis.

Increments

Long

Get/Set the number of load increments to be used in the analysis.

LoadCases

LoadCaseList/Variant

Get/Set the load cases to be considered by the non-linear analysis.

MaxIterations

Long

Get/Set the maximum number of iteration to be performed in each load increment.

MinIterations

Long

Get/Set the minimum number of iteration to be performed in each load increment.

Norm

mfConvergenceNorms

Get/Set the norm to be used to measure convergence during the analysis.

pBigDelta

Boolean

Get/Set whether P-D effects are to be considered in the analysis.

pLittleDelta

Boolean

Get/Set whether P-d effects are to be considered in the analysis.

Reporting

mfReportLevels

Get/Set level of reporting.

TensionOnly

Boolean

Get/Set whether tension/compression only members are to be considered in the analysis.

Tolerance

Double

Get/Set iteration tolerance.

 

The Application and Frame properties are common to many objects and are described in Chapter 2.

 

The non-linear effects to be considered in an analysis are set using a number of Boolean properties that are set equal to true if the non-linear effect is to be modelled in the analysis.  Axial shortening effects are controlled using the AxialShortening property while the P-d and P-D effects are set using the pLittleDelta and pBigDelta properties respectively.  Tension and Compression only effect are activated using the TensionOnly property.

 

The number of loading increments to be used in the analysis of a load case is specified by the Increments property of the NonlinearSettings object.  For each increment, the minimum and maximum number of iterations is limited by the values of the MinIterations and MaxIterations properties.  The Tolerance property stores the convergence tolerance to be used in the analysis that is tested using the convergence norm identified by the Norm property.  This property is an enumerated value of type mfConvergenceNorms with values of mfConvergenceForce (1), mfConvergenceDisplacememt (2) and mfConvergenceBoth (3).  The level of reporting is also specified by an enumerated property, Reporting, which is of type mfReportLevels.  This has values of mfReportingNone (1), mfReportingBrief (2), mfReportingDetailed(3) and mfReportingFull(4).

 

The load cases to be analysed as part of the nonlinear analysis are specified using the LoadCases property of the NonlinearSettings object.  While this property returns a LoadCaseList object listing the load cases to be analysed, it can be set using a variant value representing a list of load cases.

 

A non-linear static analysis is performed by calling the Analyse method of either the Analysis or Application objects provided the NonLinear property of the Analysis object is set equal to true.  As an example, consider the following code to perform a nonlinear analysis.

Dim mySettings as Multiframe.NonlinearSettings

’Get reference to nonlinear analysis settings
Set mySettings = myFrame.Analysis.NonlinearSettings

’Specify nonlinear effect to be considered by analysis
mySettings.AxialShortening=false
mySettings.pLittleDelta=true
mySettings.pBigDelta=true

’Set parameters for nonlinear analysis
mySettings.Increments=10
mySettings.MinIterations = 1
mySettings.MaxIterations = 25
mySettings.Tolerance=0.001
mySettings.Norm=mfConvergenceBoth

'Select load cases to analyse
mySettings.LoadCases = myFrame.LoadCases

’Do the analysis
myFrame.Analysis.Nonlinear = true
Call myFrame.Analysis.Analyse()

For speed and efficiency, the above code starts by declaring a NonlinearSettings object and then obtaining a reference to the settings for the current frame.  The script then sets the analysis to be performed using only the P-d and P-D effects.  The next block of code then instructs the analysis to use 10 load increments, with a minimum of 1 and a maximum of 25 iterations per increment.  Each increment will be iterated to a tolerance of 0.001 that is tested using both the force and displacement norms.  The final line of code executes the analysis of the frame.