Using fiber sections and the corotational geometric transformation is an easy way to simulate combined material and geometric nonlinearity in column members. A previous post examined this approach for steel columns where residual stresses play an important role in the axial load capacity. In this post, I will show the corotational mesh approach for non-sway … Continue reading Slender Things

# Category: Nonlinear Analysis

# Not All at Once

I've been working on a project where we use OpenSees to analyze structural models for several load cases. We only care if the models can support the full load, not so much how they get to the full load. We apply all the load in one step with load control and Newton-Raphson. If that succeeds, … Continue reading Not All at Once

# Discretized Members Only

I wrote a DiscretizeMember procedure in Tcl many years ago--I don't know exactly when, definitely after the 1980s and definitely before moving to Eastchester. "Members Only." by The Semi-Frozen Trombone is licensed under CC BY 2.0 After carrying the function around for years, and probably spawning more variations than uniaxial Concrete models, the procedure went … Continue reading Discretized Members Only

# Right Under Your Nose

I long ago accepted that buckling analysis would never be implemented in OpenSees. Although there is a getGeometricTangentStiff() method in the Element interface, only PFEM fluid elements use it. Implementing this method for frame elements, assembling the geometric stiffness, and solving the generalized eigenvalue problem would require several updates to the innards of OpenSees. Then … Continue reading Right Under Your Nose

# Going Through Stages

Most structural earthquake engineering deals with staged analyses of built infrastructure in one way or another. In the most common scenario, we apply gravity loads to a structural model, get the model in equilibrium, then simulate the model response to earthquake loading. Analysis of structural systems and components during construction is also important. Temporary construction … Continue reading Going Through Stages

# Its Power and Its Problem

A recent LinkedIn post by the creator of FEA Academy raised an important issue about the difference between an algorithm and an integrator. The image from the post is shown below. In other corners of the FEA world, the algorithm and the integrator are a package deal--the Newton-Raphson method is commonly understood to mean load … Continue reading Its Power and Its Problem

# Norms and Tolerance

Convergence tests in OpenSees measure how close the algorithm is to finding equilibrium at a time step. Several convergence tests are available, and they all operate on the linearized system of equations that is solved at every equilibrium iteration within a time step $latex {\bf K}_T \Delta {\bf U} = {\bf R}$ where $latex {\bf … Continue reading Norms and Tolerance

# Don’t Try This at Home

The central difference method is an explicit integrator that forms a linear combination of the mass and damping matrices to advance the solution to the next time step. So, if the mass matrix is lumped and there's no damping, or only mass-proportional damping, the left-hand side matrix is diagonal. Then, you can solve the system … Continue reading Don’t Try This at Home

# It’s Not Load Control

The static integrators in OpenSees, including displacement control, arc length, and minimum unbalanced displacement norm (MUDN), are based on an incremental-iterative framework. After an initial load increment, each integrator imposes a constraint on the change in load factor at subsequent equilibrium iterations within a pseudo-time step. Displacement control calculates the change in load factor necessary … Continue reading It’s Not Load Control

# Load Patterns and Time Series

In nonlinear structural analysis, loads add together, just not the load effects. So, the total mechanical load applied to a structural model can be expressed as the sum of time-varying load vectors. $latex {\bf P}(t)={\displaystyle \sum_{i=1}^N} \lambda_i(t){\bf P}_{ref,i}$ Each load vector is the product of a time-varying scalar function, $latex \lambda(t)$, and a non-time-varying reference … Continue reading Load Patterns and Time Series