Skip to content

Numerical Substructure Method Examples for Frame Structure

Notifications You must be signed in to change notification settings

OpenSeesXMU/NSMframework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The released code explicitly includes the procedures for automatic identification of damaged elements, triggering of the twin substructure refinement, initialization of the refined substructure, and smooth force transition at the global–local interface, thereby ensuring full transparency and practical reproducibility of the proposed non-intrusive framework.

Next, we will briefly introduce the usage descriptions, core processes, and key functions/scripts of the main structure and substructure codes:

Level-1 (MSM driver): Runs the global dynamic analysis, decides when to train/replace, exchanges boundary histories and interface forces with Level-2 over a socket.

Level-2 (aggregator/server): Builds and solves the fine submodel(s), collects reactions at interface nodes, optionally relays boundary data to deeper cores.

Table 1. Consolidated files and roles (Level-1 and Level-2)

File Role File Role
AnalysisOptn_2.tcl Global transient solve and state machine LoadPattern_3.tcl Uniform excitation
addBoudaryInfoToNextLevel.tcl Push boundary kinematics Elements.tcl Element assembly
server.tcl Command server and controller GeoTran.tcl Geometric transforms
model.tcl Fine model build and setup Sections.tcl RC fiber sections, torsion aggregator
correctorLoad.tcl Apply corrector loads Materials.tcl Concrete02 and Steel02
dispLoadg.tcl Gravity imposed motions SPConstraint.tcl Boundary constraints
dispLoadt.tcl Transient imposed motions (full history) NodeCoord.tcl Nodes
dispLoadr.tcl Refresh imposed motions in replacement NodeMass.tcl Nodal mass (template)
forceToLastLevel.tcl Collect interface reactions RayleighDamping.tcl Damping
divideStepAnalysis.tcl Robust substepping Recorders (record*.tcl) Output
TimeSeries.tcl Earthquake time series

After each analysis step, Level-1 reads the current time and the six-DOF displacement, velocity, and acceleration at its interface nodes, then sends addDisp, addVel, and addAccel in order over sock1 to Level-2, waiting for an acknowledgment after each send.

Level-2 appends these lines to its histories and, when debugMode=0, forwards the same data for node 65 over sock0 and node 2 over sock2 to downstream cores, again with per-message acks.

The receivers turn these time–DOF histories into Path/Linear time series and MultipleSupport prescribed motions, keeping boundary kinematics synchronized across all model levels.

Table 2. Training and replacement flows

Phase Level-1 (MSM) Level-2 (TSM) Data exchanged
Gravity training Standard static/transient until trigger; continuously pushes kinematics trainModel: dispLoadg.tcl → static analyze 10; optional downstream “trainModelGravity”; clearSeries addDisp/addVel/addAccel; trainModelGravity/finish acks
Dynamic training When toUpdate=1: puts sock1 "trainModel $steps" then switch toUpdate=2 Newmark transient with steps=$data; dispLoadt.tcl; per substep record and forceToLastLevel finish ack; subForce recorded per step
Replacement (per step) Compute lambda, request “getTrialForce”; clearSeries; push kinematics; apply corrector; analyze; “replaceModel” Compute mainForce0/2; request subForce0/2 from sock0/sock2; clearSeries; push kinematics; correctorLoad.tcl; dispLoadr.tcl; analyze; downstream “replaceModel” subForce line (12 comps); finish acks for clearSeries/replaceModel

Table 3. Interface forces and correctors

Item Nodes Source/Use Details
Upstream reactions (to L1) L2 nodes 65 and 165 forceToLastLevel.tcl subForce0 = [nodeReaction 65] (6 DOFs), subForce2 = [nodeReaction 165] (6 DOFs); subForce concatenated (12 comps)
Corrector loads (L2) Nodes 65 and 2 correctorLoad.tcl For each DOF i: timeSeries Path with times "0. t t+dt 1000." and values "0 0 ΔF ΔF", ΔF = mainForce − subForce; apply via Plain pattern and load command. DOF mapping modulo 6; tag advancement per 6 DOFs
Imposed motions (L2) Nodes {65, 165} dispLoadg/t/r.tcl MultipleSupport patterns with groundMotion Plain: gravity uses Linear factors; transient uses Path from full histories; replacement refreshes short paths

About

Numerical Substructure Method Examples for Frame Structure

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages