monitoring velocity in MultipleSupport

For developers writing C++, Fortran, Java, code who have questions or comments to make.

Moderators: silvia, selimgunay, Moderators

Post Reply
eroz
Posts: 49
Joined: Wed Sep 14, 2005 7:47 am
Location: San Francisco

monitoring velocity in MultipleSupport

Post by eroz »

Performing a 3-D dynamic analysis via the MultipleSupport command (providing displacement history of the corresponding earthquake). I need the velocities in the two directions and tried to monitor them via:

opserr << this->computeCurrentStrain1d(0,diffv) << " " << this->computeCurrentStrain1d(1,diffv) <<"\n";

in the update(void) method inside the corresponding zero length element. Although the analysis seems to work fine and produces the forces and displacements I seek, the velocity is always zero. Why am I getting zero velocity? Thanks.

Murat EROZ
Georgia Institute of Technology

p.s.

The model and the analysis script is as following:

model BasicBuilder -ndm 3 -ndf 6

# Define nodes
node 1 0.0 0.0 0.0
node 2 0.0 0.0 0.0

# Put mass at node 2
mass 2 0.048 0.048 0.048 0.0480 0.048 0.048

# Fix nodes
# Fix nodes
fix 1 1 1 1 1 1 1
fix 2 0 0 0 1 1 1

#Define materials
uniaxialMaterial ENT 3 600
uniaxialMaterial Steel01 1 0.9 900 5.31111111111e-4
uniaxialMaterial Steel01 2 0.9 900 5.31111111111e-4

# Define spring
element zeroLength 1 1 2 -mat 1 2 3 -dir 1 2 3

#Gravity load
pattern Plain 1 Linear {load 2 0.0 0.0 -18.67 0.0 0.0 0.0}

#Analyze
constraints Transformation
numberer RCM
system BandGeneral
test NormDispIncr 1.0e-6 6
algorithm Newton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0

#END OF GRAVITY LOAD ANALYSIS

set displacement1 "Series -dt 0.005 -filePath d1.txt -factor 1";
set displacement2 "Series -dt 0.005 -filePath d2.txt -factor 1";

pattern MultipleSupport 2 {
groundMotion 2 Plain -disp $displacement1
groundMotion 3 Plain -disp $displacement2

# $nodeTag $dirn $gMotionTag
imposedMotion 2 1 2
imposedMotion 2 2 3
}

# Record nodal displacements (same as strains since truss length is 1.0)
recorder Node -file displ1.xls -node 2 -dof 1 disp
recorder Node -file displ2.xls -node 2 -dof 2 disp

# Record force (same as stress since truss area is 1.0)
recorder Element -file force.xls -ele 1 force

#Analyze
rayleigh 0. 0. 0. 0.05
constraints Transformation
#constraints Plain
numberer RCM
system UmfPack
test NormDispIncr 1.0e-5 10
algorithm Newton
integrator Newmark 0.5 0.25
analysis Transient
analyze 300 0.005
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

you can't get them because there are no velocities posted to the nodes in your example .. node 1 is fixed and for node 2 you set the displ.
eroz
Posts: 49
Joined: Wed Sep 14, 2005 7:47 am
Location: San Francisco

Post by eroz »

I see... Was trying to simulate the loading in an experimental test conducted in a lab. In the experiment, they excite a superstructure via a "displacement-controlled" actuator, i.e. the deformation path is predefined. However, there is a velocity to this predefined motion path aswell... I want my supported mass to move according to a defined displacement history, but also need the corresponding velocities. What kind of an analysis approach would satisfy this condition ? Thanks.
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

if the time is true to the true time, the velocities go with the displacements.....
making sure you have the proper initial conditions, of course!
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

in your ground motion you can specify both the disp and vel if you want.
eroz
Posts: 49
Joined: Wed Sep 14, 2005 7:47 am
Location: San Francisco

Post by eroz »

Yes, I`d very much like to do that if possible. However, I could not find in the manual the format for specifying velocity history of motion with the prescribed displacement history in the MultipleSupport command. I`d appreciate your assistance. Thanks.
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

just add a -vel velSeries? after the -disp dispSeries?
eroz
Posts: 49
Joined: Wed Sep 14, 2005 7:47 am
Location: San Francisco

Post by eroz »

Got it going. Thanks alot!
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

you might want to share the script once you have it going, it'd be nice to see.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
eroz
Posts: 49
Joined: Wed Sep 14, 2005 7:47 am
Location: San Francisco

Post by eroz »

Certainly. So, this is a 3-D model consisting of a single zerolength element. The element base is fixed. It is loaded in displacement control (defined by a displacement history) with the corresponding velocity history of the displacements. This type of loading is typical in many experimental test setups studided under displacement controlled motions.

model BasicBuilder -ndm 3 -ndf 6

#===================================
# Define nodes
#===================================

node 1 0.0 0.0 0.0
node 2 0.0 0.0 0.0

#=============================================================
# Mass equivalent to 16.5 kips /386 = 0.042 kip-sec2/in
#=============================================================
mass 2 0.042 0.042 0.042 0.0420 0.042 0.042

#===================
# Restraints
#===================
fix 1 1 1 1 1 1 1
fix 2 0 0 0 1 1 1

#==========================================================
# Define material properties for ErozElement
#==========================================================
#Material in X:
uniaxialMaterial Steel01 1 0.9 900 5.31111111111e-4

#Material in Z:
uniaxialMaterial Steel01 2 0.9 900 5.31111111111e-4


#==========================================================
# ElasticNoTension Material in global Y
#==========================================================
# tag E
uniaxialMaterial ENT 3 600


#==========================================================
# Define element
#==========================================================
# tag iNode jNode mat_tag direction
element ErozElement 1 1 2 -mat 1 2 3 -dir 1 2 3


#==============================
# Concantrated gravity loads
#==============================
pattern Plain 1 Linear {load 2 0.0 0.0 -16.5 0.0 0.0 0.0}

#==============================
# Start gravity load analysis
#==============================
constraints Transformation
numberer RCM
system BandGeneral
test NormDispIncr 1.0e-6 6
algorithm Newton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0

#==============================
# End gravity load analysis
#==============================

#________________________________________________________________

#=================================================================
# Give path to displacement and velocity data of the experiment
#=================================================================
set displacement1 "Series -dt 0.005 -filePath d1.txt -factor 1";
set displacement2 "Series -dt 0.005 -filePath d2.txt -factor 1";
set velocity1 "Series -dt 0.005 -filePath v1.txt -factor 1";
set velocity2 "Series -dt 0.005 -filePath v2.txt -factor 1";

pattern MultipleSupport 2 {
groundMotion 2 Plain -disp $displacement1 -vel $velocity1
groundMotion 3 Plain -disp $displacement2 -vel $velocity2

# $nodeTag $dirn $gMotionTag
imposedMotion 2 1 2
imposedMotion 2 2 3

}


#=====================
#DEFINE RECORDERS
#=====================
recorder Node -file displ1.txt -node 2 -dof 1 disp
recorder Node -file displ1.txt -node 2 -dof 2 disp
recorder Element -file force.txt -ele 1 force

#==============================
# Start test load analysis
#==============================
rayleigh 0. 0. 0. 0.05
constraints Transformation
#constraints Plain
numberer RCM
system UmfPack
test NormDispIncr 1.0e-5 10
algorithm Newton
integrator Newmark 0.5 0.25
analysis Transient
analyze 4020 0.005
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

my question about this type of input is the following:

are your velocity and displacement histories related in any way?
why is the velocity not implied in the displacement?
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
eroz
Posts: 49
Joined: Wed Sep 14, 2005 7:47 am
Location: San Francisco

Post by eroz »

Yes, the velocity is obtained from the displacement, say at step "i" as:

v(i)=[ d(i)-d(i-1) ] / dt

So, if you have the displacement history, than you also have the velocity history. However, if you only define a displacement history in your data input file with the MultipleSupport command, the velocities (this->computeCurrentStrain1d(0,diff)) in the update(void) method is always zero. To get these velocities, it is necessary to specify both the disp and vel by:

groundMotion 2 Plain -disp $displacement1 -vel $velocity1

I don`t know if I answered what you were asking.
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

got it, thanx
i guess only displacements are given absolute.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Post Reply