37
MERCURY Optimized Software for Hybrid Simulation; from Pseudo-Dynamic to Hard Real Time V. Saouma D.H. Kang G. Haussmann University of Colorado, Boulder September 6, 2010 V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 1/37

MERCURY Optimized Software for Hybrid Simulation;saouma/wp-content/...Optimized Software for Hybrid Simulation; from Pseudo-Dynamic to Hard Real Time V. Saouma D.H. Kang G. Haussmann

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

  • MERCURYOptimized Software for Hybrid Simulation;

    from Pseudo-Dynamic to Hard Real Time

    V. Saouma D.H. Kang G. Haussmann

    University of Colorado, Boulder

    September 6, 2010

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 1/37

  • Outline I

    1 IntroductionGlobal ContextBackgroundNRC/NEESMercury Overview

    2 AnalysisConstitutive ModelsElements

    LibraryState Determination

    Nonlinear Algorithms

    3 HybridMatlabc++; Generalc++; Hybrid Elementc++; Coordinate Transformation

    4 ImprovementsRTHS on a Shared Memory Computer

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 2/37

  • Outline II

    RTHS on a Computer Cluster; AlgorithmRTHS on a Computer Cluster; Results

    5 Scripting6 Interface

    IntroductionHybrid PipeSCRAMNet PipeVirtual Spring PipeEnvironmental Variables

    7 Xtras8 Documentation

    Technical ManualUser’s manualsValidation Manual

    9 RemarksCurrent DevelopmentGraphical Post ProcessorApplications

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 3/37

  • Outline III

    Shake Table vs RTHS

    10 Summary

    11 Credit

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 4/37

  • Introduction Global Context

    Global Context

    Numerical simulation remains a major challenge to EQ engineering community.

    We can simulate the explosion of a nuclear bomb, but we can not (“exactly”)simulate seismic response of structures.

    Must rely on experiments of structural components, or systems to capturecomplex response.

    Finite element modeling capabilities are sophisticated, but not yet “perfect”.

    Many (hundreds of) laboratories

    Are equipped with digitally controlled actuators/load frames (and LabView),and continue to operate under load/strain/stroke control only.Could benefit from a full nonlinear finite element code which can beplugged in LabView/Simulink to drive their tests

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 5/37

  • Introduction Background

    Background

    Existing software not ideally suited for single site pseudo dynamic (PsD)and RTHS.

    Software may require support of a “facilitator” (such as OpenFresco orSIMCOR) to interact with hardware. Essential for distributed hybridsimulation, a handicap for single site HS.

    The literature provides very little evidence of RTHS of structures(complexity of the numerical substructure, validation with shake tabletests).

    Boulder embarked in a project to

    Develop an optimized software for single site PsD and RTHS (not meant asan alternative to OpenSees, Sap2000, Midas, ...)Perform RTHS of a reinforced concrete frame previously tested on a shaketable, and compare results.

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 6/37

  • Introduction NRC/NEES

    A Research Agenda for the Network for

    Earthquake Engineering Simulation (NEES)

    Committee to Develop a Long-Term Research

    Agenda for the N etwork for Earthquake Engineering Simulation (N EES)

    Board on Infrastructure and the Constructed Environment

    Division on Engineering and Physical Sciences

    Preventing Earthquake

    DisastersTHE GRAND CHALLENGE IN EARTHQUAKE ENGINEERING

    National Research Council

    One of the primary goals of NEESis to foster a movement towardintegrated computer simulation andphysical testing.

    Holy Grail: replace all testing bynumerical simulation. How can weachieve it?

    1 Increase sophistication of real timehybrid simulation (RTHS).

    2 Gradually replace/eliminate ST testsby RTHS.

    3 Eliminate ST & RTHS

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 7/37

  • Introduction Mercury Overview

    Mercury Overview

    Two identical versions

    Matlab (used for prototyping, and pedagogical purposes)c++ for deploymentStudents found it much easier to start with the Matlab version, and then runthe c++ version.

    Has most of the key features likely to be required in a comprehensivenonlinear RTHS of steel or reinforced concrete structures.

    Runs within LabView, Simulink/xPC, or real time Linux.

    Optimized for speed and performance.

    “Battle tested”

    c++ version with a complex RTHS simulation.Matlab version in a new course (Nonlinear Structural Analysis)

    Extensive documentation, and validation.

    Will be supported by Boulder if you decide to adopt it.

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 8/37

  • Analysis Constitutive Models

    Constitutive Models; fiber elements

    Steel

    Models with isotropic and kinematichardening

    Bilinear with isotropic hardening

    Modified Giuffre-Pinto

    tanE

    1 1C ( , )rev revε σ

    1 10 0( , )ε σ

    2 20 0B ( , )ε σ

    2 2A ( , )rev revε σ

    E

    Strain [mm/mm]

    Stre

    ss [

    Mpa

    ]

    -0.04 -0.02 0 0.02 0.04 0.06 0.08

    -2000

    -1000

    0

    1000

    2000

    (a)

    (b)

    Concrete

    Modified Kent and Park

    A

    B C

    1 1D( , )m mε σ

    EF

    G

    H

    2 2I( , )m mε σ

    R( , )R Rε σ

    1tε

    2tε

    1RE

    2RE

    20.5 RE⋅

    20E

    10.5 RE⋅

    cE

    cE

    Anisotropic damage model(LMT/Cachan)

    -4.0

    -3.5

    -3.0

    -2.5

    -2.0

    -1.5

    -1.0

    -0.5

    0.0

    0.5

    1.0

    -0.010 -0.008 -0.006 -0.004 -0.002 0.000 0.002

    Str

    ess

    [kN

    /mm

    2]

    Strain [mm/mm]

    Strain-Strain Curve

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 9/37

  • Analysis Constitutive Models

    Constitutive Models; Lumped Plasticity

    Model of Ibarra, Medina and Krawinkler (2005)

    1

    0

    2

    37

    4

    5

    6

    8

    F

    y

    !F

    1

    !F

    1

    "F

    y

    "F

    0

    ! 1

    !

    0

    " 1

    "

    0

    "K

    1

    "K

    K

    1

    !K

    0

    !K

    Original Envelope Original Envelope

    1

    0

    2

    3

    7

    45

    6

    8

    F

    y

    !F

    ,1ref

    !F

    y

    "F

    0

    ! 1

    !

    0

    " 1

    "

    K

    ,1reK

    ,0ref

    !F

    ,1ref

    "F

    ,0ref

    "F

    Basic strength deterioration Post capping strength deterioration

    1

    0

    2

    3

    7

    4

    5

    6

    F

    y

    !F

    y

    "F

    K

    1K

    Original Envelope

    K

    2K

    Interruption

    (Disregard stiffness deterioration)

    1

    0

    2

    3

    7

    4

    5

    6

    8

    F

    y

    !F

    y

    "F

    0

    !

    0

    "

    K

    ,1reK

    Original Envelope

    9

    ,1s

    !#

    ,1s

    "#

    Unloading stiffness deterioration Accelerated reloading stiffness deterioration

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 10/37

  • Analysis Elements

    Element Library

    2D truss and beam-columns

    Stiffness Based

    Flexibility Based (with or withoutelement iterations)

    x

    y

    z

    x

    , ( )e yw x

    , ( )e xw x1 1,z zM �

    2 2,x xN u� �

    2 2,z zM �

    1 1,z zM �

    , ( )e yw x

    , ( )e xw x ( ), ( )z zM x xφ

    ( ), ( )x zN x xε

    eL

    Layered (fiber) sections

    x

    z

    y y

    zifiby

    ifibz

    Zero length elements and sections

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 11/37

  • Analysis Elements

    State Determination

    Analysis

    ,tnP1

    int

    , ,

    ext

    t n t n P P?

    8

    a) Structure level; , u P b) Element level; , d f

    ,tnu

    2

    Element Nodal

    Forces

    intint

    ,, , enenff

    Structure Tangent

    Stiffness Matrix

    tan

    SK

    Structure Nodal

    Forcesint

    ,tnP7

    c) Section level;

    4Section

    Deformations ,,senConstitutive Model

    ! "D# $ $ !f % &$

    Section

    Forces

    Section

    Forces , ,s e n#

    Elem

    ent N

    odal

    Disp

    lacemen

    ts,

    en

    d E

    lemen

    t

    Nod

    al

    Fo

    rces,

    en

    f

    Element Nodal

    Displacements ,e nd

    3

    int

    ,,sen

    ?5 int

    , ,e n e n d d

    Element Tangent

    Stiffness Matrix

    tan tan

    , ,,e n e nk k

    66

    7

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 12/37

  • Analysis Nonlinear Algorithms

    Nonlinear Analysis

    Solution AlgorithmsLinear staticEigenvalue analysisInitial stiffnessNewton-RaphsonModified Newton-Raphson

    Mixed User can specify automatic change of solution algorithm ifconvergence fails

    Convergence CriteriaDisplacement normForce normEnergy norm

    IntegratorsStatic

    Load controlDisplacement controlArc length†

    TransientNewmark βHilber-Hughes-Taylorα

    Shing (IS, NR, or MNR)

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 13/37

  • Hybrid Matlab

    Hybrid Capabilities; Matlab

    Supports (non-real time) distributed hybridelement

    Communication through TCP/IP,

    “Physical element” can be another versionof Mercury.

    Transfers nodal displacementshybrid2DBeamColumnNumerical

    Slave node (if Mercury) can returnrestoring forces and nodal displacementshybrid2DBeamColumnPhysical.

    For “debugging” (testing coordinate transformation) and teaching

    ♦ Defintion of hybrid element in Mercury_Master with IP address2

    elements = {{eletag1, Hybrid2DBeamColumnNumerical , in, jn, sectag, IP address1 , port number}};

    ♦ Definition of physical element in Mercury_Slave with IP address1

    hybrid = { Hybrid2DBeamColumnPhysical , IP address2 , port number, eletag2}

    Hy

    bri

    d2

    DB

    eam

    Co

    lum

    nN

    um

    eric

    alw

    ith

    elet

    ag1

    clientdouble.m

    clientdouble( IP address2,

    port number,

    number of retries)

    Hy

    bri

    d2

    DB

    eam

    Co

    lum

    nP

    hy

    sica

    lw

    ith

    elet

    ag2

    serverdouble.m

    serverdouble( ,

    port number,

    number of retries)

    n

    ed

    TCP/IP Connection

    serverdouble.m

    serverdouble( ,

    port number,

    number of retries)

    clientdouble.m

    clientdouble( IP address1,

    port number,

    number of retries)

    m

    ef

    serverdouble.m

    serverdouble( ,

    port number,

    number of retries)

    clientdouble.m

    clientdouble( IP address1,

    port number,

    number of retries)

    m

    ed

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 14/37

  • Hybrid c++; General

    Hybrid Capabilities; c++

    Hybrid Element converts numerical values into physical space values

    transfer interface shuttles data between Mercury and the hosting application thatcontrols the physical test.

    Hybrid functionality has been exposed to a command-line program, NationalInstruments LabView, and Mathworks MATLAB/Simulink.

    Transfer interface can be used to embed Mercury within other applications

    Environment assigns a platform on which Mercury runs.

    Mercury performs timestep/increment iteration internally vs. embedded analysis(Mercury performs a single step when triggered by the hosting application)

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 15/37

  • Hybrid c++; Hybrid Element

    Hybrid Element

    Appears as an element like any other element in the numerical model computes restoring

    forces (finte ) in terms of nodal displacements (d

    ne).

    Uses physical measurements instead of computation to produce element restoring forces.

    Measured quantities include all forces produced by the specimen: stiffness, damping, andinertial forces.

    For nonlinear solution user must provide reasonable estimates of initial and tangentstiffness.

    n

    ed np

    m

    ef

    m

    ef

    mpd

    ed

    d

    ef

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 16/37

  • Hybrid c++; Coordinate Transformation

    Coordinate Transformation

    Element nodal displacements in structural model are converted into actuatordisplacements (pn) which are applied to the physical specimen

    measured element restoring forces (fme ) and element nodal displacements (d

    me ) from the

    specimen are then converted into desired element restoring forces (fde ) and element nodal

    displacements (dde ) used in the numerical model

    1 1 1X , A , p

    BL

    nx

    ny

    nz

    nx nxN , u

    ny nyV ,v

    nz nzM ,

    p pxX , u 2 2 2X ,A , p

    3 3 3X ,A , p

    1

    2

    p pyY , v

    p pz

    Z ,

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 17/37

  • Improvements RTHS on a Shared Memory Computer

    RTHS on a Shared Memory Computer

    Multithreading based on Intel MKL library

    Linear Solver: PARDISO (thread-safe,high-performance, robust, memoryefficient software for large sparsesymmetric matrices).

    Force Recovery: is multi-threaded forparallel operations.

    Test Problem to Assess benefit ofmulti-threading analysing a R/C frame ofincreasing size.

    0

    0.5

    1

    1.5

    2

    2.5

    3

    3.5

    0 200 400 600 800 1000 1200 1400 1600 1800

    Spe

    edup

    ove

    r se

    rial p

    rogr

    am

    DOFs in model

    Speedup of multithreaded Mercury vs. serial Mercury

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 18/37

  • Improvements RTHS on a Computer Cluster; Algorithm

    RTHS on a Computer Cluster;Algorithm

    K3-1

    u11

    u21

    u1m...u1

    2u2

    2u2

    m... u3

    1u3

    2u3

    m...

    K0-1

    1 2 3

    a) Initial stiffness; One processor; m=10

    u11

    u21

    u1m...u1

    2u2

    2u2

    m... u3

    1u3

    2u3

    m...

    K1-1

    1 2 3

    Incr.

    Incr.

    K2-1

    b) Modified Newton-Raphson; m=10 (not feasible, K-1 computationally expensive)

    Shared Memory Configuration (Multi-threaded)

    1Incr.

    SCRAMNet Card

    2 3 4 5 6 7 8 9 10 11 12 13 14

    K0-1

    K0-1

    K3-1

    K7-1

    K10-1

    Cluster A (Real time)

    Cluster B (Non-Real time) K3-1

    Cluster A (Real time)

    Cluster A (Real time)

    Distributed Memory Configuration (MPI)

    c) Saouma-Kang (Variable Initial Stiffness)

    K7-1

    Iter.

    Iter.

    Two clusters: A (real time) dedicated to hybrid simulation (multipleCPU for force recoveries); B (not real time) dedicated to evaluation ofK−1t . Swap inverse tangent matrix when completed.

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 19/37

  • Improvements RTHS on a Computer Cluster; Results

    RTHS on a Computer Cluster; Results

    1

    1.2

    1.4

    1.6

    1.8

    2

    2.2

    2.4

    2.6

    2.8

    1 2 3 4 5 6 7

    Sp

    eed

    up

    Number of processors

    Speedup (Parallel program)

    with inverse matrix & element state determination)

    # of elements = 53 # of elements = 109 # of elements = 165 # of elements = 333

    # of elements = 389 # of elements = 445 # of elements = 501

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 20/37

  • Scripting

    Scripting Interface: LUA

    Embedded in code

    MATLAB like syntax (cell arrays), and can easily define functions andvariables

    can use alphanumeric (as opposed to just numeric) tags

    Listing 1: Example� �

    b a r s l i p s e c t i o n f = ’ BSColDFSection ’ ; b a r s l i p s p r i n g f = ’BSColDFSS ’ ;columnsect ion = ’ ColDSection ; b a r s l i p s p r i n g = ’BSColDSS ’ ;b a r s l i p s e c t i o n = ’ BSColDSection ’ ; c o l u mn r i g i d s ec t io n = ’ Co lR ig idSec t ion ’ ;i f ( c o l f l o o r ==1) thennode1 = columnnodename( colbay , c o l f l o o r , 1 ) ;node2 = columnnodename( colbay , c o l f l o o r , 2 ) ;ba rs l ipbo t tom = { s t r i n g . format ( ’ columnbsb_%d_%d ’ , colbay , c o l f l o o r ) ,’ In ter faceElement2D ’ , node1 , node2 ,{ { b a r s l i p s p r i n g f , { 1 , 0 , 0 } } } , { { b a r s l i p s e c t i o n f } } , {0 ,1 ,0 } , { −1 ,0 ,0 } }p las t icco lumn1 = { s t r i n g . format ( ’ columnpl1_%d_%d ’ , colbay , c o l f l o o r ) ,’ StiffnessBased2DBeamColumn ’ , node2 , node3 , { columnsect ion , n I p _ s t i f } }f lexco lumn = { s t r i n g . format ( ’ co lumnf lx_%d_%d ’ , colbay , c o l f l o o r ) ,’ Flexibil ityBased2DBeamColumn ’ , node3 , node4 , { columnsect ion , n I p _ f l e x } ,f lexparams }p las t icco lumn2 = { s t r i n g . format ( ’ columnpl2_%d_%d ’ , colbay , c o l f l o o r ) ,’ StiffnessBased2DBeamColumn ’ , node4 , node5 , { columnsect ion , n I p _ s t i f } }b a r s l i p t o p = { s t r i n g . format ( ’ columnbst_%d_%d ’ , colbay , c o l f l o o r ) ,’ In ter faceElement2D ’ , node5 , node6 ,{ { b a r s l i p s p r i n g , { 1 , 0 , 0 } } } , { { b a r s l i p s e c t i o n } } , {0 ,1 ,0 } , { −1 ,0 ,0 } }r ig idco lumntop = { s t r i n g . format ( ’ co lumnrdt_%d_%d ’ , colbay , c o l f l o o r ) ,

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 21/37

  • Interface Introduction

    Interface and Coupling to Hosting Application

    Embedded in code

    MATLAB like syntax

    can easily define functions and variables

    Embedded version of Mercury which runs within another application (thehosting application)

    C/C++ code connects embedded Mercury to hosting application(LabView,Simulnk, etc.) which can

    Transfer data quantities between embedded Mercury and externalapplicationAllows the hosting application to ’trigger’ embedded Mercury to perform asingle timestep or increment

    Input files used for command-line based Mercury can be used byembedded Mercury with minimal changes

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 22/37

  • Interface Hybrid Pipe

    Hybrid Pipe

    Abstract interface which connects Mercury hybrid element to a physicalspecimen

    Different hybrid pipes must be used/written depending on specificlaboratory hardware

    Example: SCRAMNETpipe is specifically designed to work with MTSSCRAMNet-based actuators

    Laboratory hardware differences are contained in the Hybrid Pipe code,without affecting other code

    Two labs with differing actuator setups could use the same input file bychanging the Hybrid Pipe used

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 23/37

  • Interface SCRAMNet Pipe

    SCRAMNet Pipe

    Hybrid Pipe specifically written to work with SCRAMNet-driven MTSactuators

    Displacements and Forces of a hybrid element are written/read from theproper SCRAMNet memory locations

    Timestepping is synchronized from a SCRAMNet interrupt, lockingMercury’s timestep rate

    Useful starting point for writing new Hybrid Pipe classes to handledifferent hardware

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 24/37

  • Interface Virtual Spring Pipe

    Virtual Spring Pipe

    A Hybrid pipe that simulates a physical specimen

    Useful for testing and verifying simulation setup without actually runningactuators

    Simple spring response: F = Kd

    Can delay the response by N timesteps, to simulate actuator lag fortesting purposes

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 25/37

  • Interface Virtual Spring Pipe

    Transient Recorders

    [fragile]

    transientrecorder will accumulateand record displacements and forces for alist of nodes and write them only aftersimulation is completed in order to avoidinterrupting the real-time simulation.

    One should specify:

    Number of values to record

    Number of DOFs in the model

    Filename to save the data into

    Names/numbers of all the nodes torecord

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 26/37

  • Interface Environmental Variables

    Environmental Variables

    Describes which platform Mercuryis running on. There are severalpossible values:

    1 CommandLine

    2 CommandLineTriggered

    3 LabView

    4 Simulink

    For the CommandLineenvironment, one should use thesolve method to perform analysis,specifying the number of timestepsto use. For any other environment,the user should set some variablesdescribing the model, analysis andloading to use; the environment willproperly trigger Mercury for thespecified number of timesteps.

    � �i f ( Environment == "CommandLine " ) then

    p r i n t ( " Er ro r : run mercury wi th the −−e x t e r n a l op t ion " )t r a n s i e n t a n a l y s i s : so lve (30000)

    elseCommandLineTriggeredHook = t r a n s i e n t a n a l y s i sLabViewHook = t r a n s i e n t a n a l y s i sSimulinkHook = t r a n s i e n t a n a l y s i sModelRef = modelLoadingRef = ear thquakeloadingnumsteps = 30001rampsteps = 1000 −−[ [ ramp up i n i t i a l va lues ] ]

    end� �

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 27/37

  • Xtras

    Special Features

    Speed

    Shared memory: multithreaded with Intel MKL libraryDistributed memory: Two groups of processors (MPI)

    Hybrid simulation in real time, element force recoveryspread in a cluster of n processorsContinuous update of tangent stiffness matrix in a “parallel”non real time computer cluster; Initial stiffness matrix iscontinuously overwritten

    Refinements of Shing’s Method to allow 10n iterations per incrementof 0.01 sec.

    Pushover Analysis Allows application of displacement over multipledof following application of vertical loads (single analysis).

    High performance concrete model (Developed by LMT/Cachan)

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 28/37

  • Documentation Technical Manual

    Technical Manual

    Over 250 pages of detailed technical documentation for element formulations, constitutivemodels, integration schemes, hybrid elements.

    DraftWith the section tangent flexibility matrices at end of the last convergence in structural

    level given byctan,k=1,j=0s,e,n (x) = c

    tans,e,n−1(x)

    the linearization of the section force-deformation relation yields the incremental section defor-mation vectors.

    δεεεk=1,j=1s,e,n (x) = ctan,k=1,j=0s,e,n (x) · δσσσ

    k=1,j=1s,e,n (x)

    The section deformation vectors are updated to the state that corresponds to point B inFig. 3.13(b), and the updated section deformation vector will be given by

    εεεk=1,j=1s,e,n (x) = εεεk=1,j=0s,e,n (x) + δεεε

    k=1,j=1s,e,n (x)

    For the sake of simplicity we will assume that the section force-deformation relation is explic-itly known, then the section deformation vectors εεεk=1,j=1s,e,n (x) will correspond to internal section

    force vectors σσσint,k=1,j=1s,e,n (x) and updated section tangent flexibility matrices ctan,k=1,j=1s,e,n (x) in

    Fig. 3.13(b) can be defined.The residual section force vectors are then determined

    σσσR,k=1,j=1s,e,n (x) = σσσk=1,j=1s,e,n (x)− σσσ

    int,k=1,j=1s,e,n (x)

    and are transformed into residual section deformation vectors εεεR,k=1,j=1s,e,n (x)

    εεεR,k=1,j=1s,e,n (x) = ctan,k=1,j=1s,e,n (x) · σσσ

    R,k=1,j=1s,e,n (x)

    The residual section deformation vectors are thus the linear approximation of the deforma-tion error made in the linearization of the section force-deformation relation (Fig. 3.13(b)).While any suitable section flexibility matrix can be used to calculate the residual section defor-mation vector, the section tangent flexibility matrices offer the fastest convergence rate.

    The residual section deformation vectors are integrated along the element using the com-plimentary principle of virtual work to obtain the residual element nodal displacement vector.

    d̃R,k=1,j=1e,n =

    ∫ Le0

    Nf,e(x)T· εεεR,k=1,j=1s,e,n (x)dx

    At this stage the first iteration (j = 1) is completed. The final element and section states for

    j = 1 correspond to pointB in Fig. 3.13. The residual section deformation vectors εεεR,k=1,j=1s,e,n (x)

    and the residual element nodal displacement vector d̃R,k=1,j=1e,n were determined in the firstiteration, but the corresponding element nodal displacement vector have not yet been updated.Instead, they constitute the starting point of the remaining steps within iteration loop j.

    The presence of residual element nodal displacement vector d̃R,k=1,j=1e,n will violate com-patibility, since elements sharing a common node would now have different element nodal dis-placement vector. In order to restore the inter-element compatibility, corrective force vector

    56

    Draftef%

    A

    D

    B

    C

    , 1e n−f%

    0, 0

    , 1 ,

    k j

    e n e n

    = =

    −=d d% % 1, 1

    ,

    k j

    e n

    = =d%

    ed%

    1, 2

    ,

    k j

    e n

    = =d%1, 3,

    k j

    e n

    = =d%

    1, 1

    ,

    1, 0 1, 1

    ,

    k j

    e n

    k j k j

    e e n

    δ

    δ

    = =

    = = = ==

    f

    k d

    %

    % %

    int, 1, 1

    ,

    k j

    e n

    = =f%

    1, 1

    ,

    k j

    e nδ= =

    d% , 1, 1,

    R k j

    e n

    = =d%

    , 1, 2

    ,

    R k j

    e n

    = =d%

    , 1, 3

    , 0R k j

    e n

    = ==d%

    tan, 1, 1

    ,

    k j

    e n

    = =c%

    tan, 1, 2

    ,

    k j

    e n

    = =c%

    36tan, 1, 3

    ,

    k j

    e n

    = =c%

    int, 1, 3

    ,

    k j

    e n

    = =f%

    in t, 1, 2

    ,

    k j

    e n

    = =f%

    1, 2

    ,

    1, 1 , 1, 1

    , ,

    k j

    e n

    k j R k j

    e n e n

    δ= =

    = = = ==

    f

    c d

    %

    %%

    3

    2

    1

    25

    13

    37

    15

    27

    26

    27

    24

    12

    38

    1, 3

    ,

    1, 2 , 1, 2

    , ,

    k j

    e n

    k j R k j

    e n e n

    δ= =

    = = = ==

    f

    c d

    %

    %%

    A

    D

    B

    C

    1, 1

    , , ( )k j

    s e n xδ= =

    εεεε

    , ( )s e xσσσσ

    , ( )s e xεεεε0, 0

    , , 1 , ,( ) = ( )k j

    s e n s e nx x= =

    −ε εε εε εε ε

    , , 1( )s e n x−σσσσ1, 1

    , , ( )k j

    s e n x= =

    εεεε

    int, 1, 1

    , , ( )k j

    s e n x= =

    σσσσ

    , 1, 1

    , , ( )R k j

    s e n x= =

    σσσσ

    tan, 1, 1

    , ( )k j

    s n x= =

    c

    , 1, 1

    , , ( )R k j

    s e n x= =

    εεεε

    1, 2

    , , ( )k j

    s e n x= =

    σσσσ

    1, 2

    , , ( )k j

    s e n xδ= =

    εεεε

    1, 2

    , , ( )k j

    s e n x= =

    εεεε

    tan, 1, 2

    , , ( )k j

    s e n x= =

    c

    , 1, 2

    , , ( )R k j

    s e n x= =

    σσσσ

    int, 1, 2

    , , ( )k j

    s e n x= =

    σσσσ

    , 1, 2

    , , ( )R k j

    s e n x= =

    εεεε

    1, 3

    , ,

    1, 3

    , , ,

    ( )

    ( )

    k j

    s e n

    k j

    f e s e n

    x

    x

    δ

    δ

    = =

    = == N f%

    σσσσ

    1, 3

    , , ( )k j

    s e n xδ= =

    εεεε

    1, 3

    , , ( )k j

    s e n x= =

    εεεε

    tan, 1, 3

    , , ( )k j

    s e n x= =

    c

    , 1, 3

    , , ( ) 0R k j

    s e n x= =

    =σσσσ

    , 1, 3

    , , ( ) 0R k j

    s e n x= =

    =εεεε

    1, 1

    , ,

    1, 1

    , ,

    ( )

    ( )

    k j

    s e n

    k j

    f e e n

    x

    x

    δ

    δ

    = =

    = == N f%

    σσσσ

    1, 3

    , ,

    int, 1, 3

    , ,

    ( )

    ( )

    k j

    s e n

    k j

    s e n

    x

    x

    = =

    = ==

    σσσσ

    σσσσ

    1, 1

    , , ( )k j

    s e n x= =

    σσσσ1, 2

    , ,

    1, 2

    , ,

    ( )

    ( )

    k j

    s e n

    k j

    f e e n

    x

    x

    δ

    δ

    = =

    = == N f%

    σσσσ

    18

    116

    7

    30

    23

    3519

    31

    4

    29 33

    5

    17

    21

    9 10

    16

    22

    34

    28

    8 20

    32

    (a) Element state determination

    (b) Section state determination

    3a 5

    4

    A

    B

    Fig. 3.13 Element and section state determinations for flexibility-based 2D beam-column ele-

    ment with Newton-Raphson iteration loop in element level

    54

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 29/37

  • Documentation User’s manuals

    User’s Manuals

    One for Matlab version, and one for c++

    Draft- Tol: Convergence criteria on the residuals

    Example:FlexibilityBased2DBeamColumn in Sec. A.4, then we could have: StrMiter = 20; EleMiter= 50; Convergence = ‘ForceNorm’; ConvergenceEle = ‘EnergyNorm’; Tolerance = 1.0e-8

    A.3 Geometry Block

    The geometry block defines nodal coordinates and their constraints assuming a right handedcoordinate system.

    A.3.1 Nodal coordinates

    The nodcoord assigns coordinates of nodes.

    nodcoord = { nodtag1, x1, y1 [z1] ;... ;nodtagi, xi, yi [zi] ;... ;nodtagn, xn, yn [zn] }

    for example:

    Node = { 1, 0.0, 0.0 ;2, 1.0, 3.0 ;3, 2.0, 0.0 }

    A.3.2 Boundary condition

    The constraint command assigns boundary conditions to the nodes. Each node has tohave as many constraint as d.o.f’s per node.

    constraint = { nodtag1, id11, id1

    2[ id1

    3, id1

    4, id1

    5, id1

    6] ;

    ... ;nodtagi, idi

    1, idi

    2[ idi

    3, idi

    4, idi

    5, idi

    6] ;

    ... ;nodtagn, idn

    1, idn

    2[ idn

    3, idn

    4, idn

    5, idn

    6] }

    Where 0 corresponds to a free dof, and 1 to a fixed one. For example:constraint = { 3, 1, 1 ;

    5, 1, 0 }

    A.4 Element Block

    The elements command defines element type, nodal connectivity, and basic sectional infor-mation. These may vary with the element type.

    252

    Chapter 1

    MERCURY USER’S MANUAL

    FOR C++

    This document1 describes the input for C++ version of Mercury. The C++ version usesthe Lua scripting language2 (analogous to TCL in OpenSees).

    1.1 nodes

    The “nodes” command defines nodal coordinates, and nodal masses if material densities arenot in materials.

    nodes = { { nodtag1, x1, y1 [, z1] [, ‘mass’, mx1, my1 [, mz1]] };{ . . . };{ nodtagi, xi, yi [, zi] [, ‘mass’, mxi, myi [, mzi]] };{ . . . };{ nodtagn, xn, yn [, zn] [, ‘mass’, mxn, myn [, mzn]] } };

    • nodtagi: Tag of the ith node

    • xi, yi, and zi are node coordinates of node i at each global coordinate.

    • mxi, myi, and mzi are mass quantities of node i at each global coordinate.

    1.2 elements

    The “elements” command defines element type, nodal connectivity, and basic section infor-mation. These may vary with the element type.

    elements = { { Definition of element1 };{ . . . };{ Definition of elementi };{ . . . };{ Definition of elementn } };

    1In this preliminary version of Mercury, no attempt has been made to simplify (generate/automate) dataentry, and there is not (yet) a mesh generator for the program. Those are simple future developments.

    2http://www.lua.org/

    5

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 30/37

  • Documentation Validation Manual

    Validation Manual

    Over 30 examples used for validations. Each problem stored in a separate folder containing: a)Matlab input file; b)c++ (lua) input file; c) OpenSees (tcl) input file; and d) Excel/visio files forresults

    Example Algorithm Element Section Material Analysis 1 Analysis 2

    Ex01 Linear Simple truss General Elastic Static Newmark beta

    Ex02 Linear Simple truss General Elastic Load control HHT

    Ex03 Linear Simple truss General Elastic Load control

    Ex04 Linear Simple truss General Elastic Disp control

    Ex05 Mixed Simple truss General Elastic and Hardening Static Newmark beta

    Ex06 Mixed Simple truss General Elastic and Hardening Load control HHT

    Ex07 Mixed Simple truss General Elastic and Hardening Newmark beta

    Ex08 Mixed Simple truss General Elastic and Hardening Disp control HHT

    Ex09 Mixed Simple truss General Elastic and Bilinear Load control Newmark beta

    Ex10 Mixed Simple truss General Elastic and ModGMP Load control HHT

    Ex11 Mixed Simple truss General Damage2 Cyclic disp control

    Ex12 Mixed Simple truss General ModKP Cyclic disp control

    Ex13 Mixed Simple truss General Hardening Cyclic disp control

    Ex14 Mixed Simple truss General Hardening Cyclic disp control

    Ex15 Mixed Simple truss General Hardening Cyclic disp control

    Ex16 Mixed Simple truss General Bilinear Cyclic disp control

    Ex17 Mixed Simple truss General Bilinear Cyclic disp control

    Ex18 Mixed Simple truss General ModGMP Cyclic disp control

    Ex19 Mixed Simple truss General ModGMP Cyclic disp control

    Ex20 Mixed SBC Layer Hardening Cyclic disp control HHT

    Ex21 Mixed FBC1 Layer Hardening Cyclic disp control Shing

    Ex22 Mixed FBC2 Layer Hardening Cyclic disp control

    Ex23 Mixed SBC and zero-length General Elastic and Bilinear Load control

    Ex24 Mixed SBC and zero-length section General Elastic and Bilinear Load control

    Ex25 Mixed SBC Layer Hardening Multiple disp control

    Ex26 Mixed FBC1 Layer Hardening Multiple disp control

    Ex27 Mixed Ghanoumn single column Layer ModGMP and ModKP HHT

    Ex28 Mixed Ghanoumn single column Layer ModGMP and Damage2 HHT

    Ex29 Mixed Ghannoum 3 bay 3 floor Layer Mixed materials HHT/Shing

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 31/37

  • Remarks Current Development

    Current Development

    Timoshenko beam

    Graphical (OpenGL based) post-processor

    Geometric nonlinearity

    Limit elements

    Online tutorials

    Mesh generator

    Translator from Matlab to Lua

    Improved documentation for integration with hybrid simulation

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 32/37

  • Remarks Graphical Post Processor

    Graphical Post Processor

    A Graphical Post Processor (written in Matlab) is under currentdevelopment. It will support both the Matlab and the C++ versions, andwill provide a GUI through which user could visualize various results.

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 33/37

  • Remarks Applications

    Applications

    Mercury has been “battle tested" through two major endeavors:

    Research Real time Hybrid Simulation of a reinforced concreteframe with non-ductile columns, and comparison withshake table test results.

    Education in a new course “Nonlinear Structural Analysis” in whichstudents first used the Matlab version to gently acquaintthemselves with basic concepts (including modifying thecode), and then with the c++ version for a comprehensiveproject on seismic rehabilitation.

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 34/37

  • Remarks Shake Table vs RTHS

    Comparison between Shake Table and RTHS; The Video

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 35/37

    st-rths-short-high-quality.wmvMedia File (video/x-ms-wmv)

  • Summary

    Summary

    Mercury

    Is a full nonlinear structural dynamic finite element code which can beembedded inside LabView for pseudo-dynamic tests, or real time hybridsimulation.

    Is more than a software for hybrid dynamic nonlinear analysis of civilengineering structures.

    It is a concept of hardware in the loop which can be adapted to otherdisciplines such as automotive and aerospace engineering.

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 36/37

  • Credit

    Credit

    Prof. Victor Saouma Project DirectorDr. Dae-Hang Kang Development of Mercury Matlab, c++

    Dr. Gary Haussmann Development of Mercury c++ &Hybrid capabilitiesLMT/Cachan Anisotropic model

    State of Colorado Financial support

    V. Saouma et al.; Univ. of Colorado Mercury; Optimized Software for Hybrid Simulation 37/37

    IntroductionGlobal ContextBackgroundNRC/NEESMercury Overview

    AnalysisConstitutive ModelsElementsNonlinear Algorithms

    HybridMatlabc++; Generalc++; Hybrid Elementc++; Coordinate Transformation

    ImprovementsRTHS on a Shared Memory ComputerRTHS on a Computer Cluster; AlgorithmRTHS on a Computer Cluster; Results

    ScriptingInterfaceIntroductionHybrid PipeSCRAMNet PipeVirtual Spring PipeEnvironmental Variables

    XtrasDocumentationTechnical ManualUser's manualsValidation Manual

    RemarksCurrent DevelopmentGraphical Post ProcessorApplicationsShake Table vs RTHS

    SummaryCredit