Displacement Histories at Sliding Surfaces in TFP
Moderators: silvia, selimgunay, Moderators
Displacement Histories at Sliding Surfaces in TFP
Hello,
I am planning to use existing TFP element for some of my work. However, I need the displacement and velocity histories at different sliding surfaces, which apparently is not immediately available and one need to dig out information from the source code or play with recorders.
Outputting some known matrix/vector appears to be the easiest option to me. For example, in the present case they are calculating v, or vp vectors in real time, which I might be interested in. Can anyone please guide me on how to output these specific vectors?
Thanks,
Manish
I am planning to use existing TFP element for some of my work. However, I need the displacement and velocity histories at different sliding surfaces, which apparently is not immediately available and one need to dig out information from the source code or play with recorders.
Outputting some known matrix/vector appears to be the easiest option to me. For example, in the present case they are calculating v, or vp vectors in real time, which I might be interested in. Can anyone please guide me on how to output these specific vectors?
Thanks,
Manish
Re: Displacement Histories at Sliding Surfaces in TFP
hi manish, we will try to build these recorders for you soon. if there any other outputs that you want from TFP let me know as soon as possible.
Re: Displacement Histories at Sliding Surfaces in TFP
Thanks Vesna, I need velocity and displacement histories at all the sliding surfaces. I am only guessing that v or vp could be the relative displacements (total and plastic, respectively). From there I guess I can get velocity by numerical differentiation.
If I am thinking right about v and vp, and that there is no velocity matrix in the source code, this is all I need.
Manish
If I am thinking right about v and vp, and that there is no velocity matrix in the source code, this is all I need.
Manish
Re: Displacement Histories at Sliding Surfaces in TFP
Could you please give some idea on when this could possibly be included?
Re: Displacement Histories at Sliding Surfaces in TFP
I will talk with the author of the material and see what we can do. I'll let you know after we implement it.
Re: Displacement Histories at Sliding Surfaces in TFP
Hello Vesna,
Here is what I tried to do. I used the 24-step procedure to create a file named TFP_Bearing.dll. This is what is the name of .cpp and .h files. Firstly, I tried without making any changes in original TFP_Bearing.cpp and TFP_Bearing.h files. I got the .dll file. I took that file to my folder where I needed to perform analysis. In stead of defining TFP element like
element TFP ........
I defined
element TFP_Bearing.........
However, it stops right at this step without giving any error warning. Could you please suggest what could have gone wrong here?
Thanks,
Manish
Here is what I tried to do. I used the 24-step procedure to create a file named TFP_Bearing.dll. This is what is the name of .cpp and .h files. Firstly, I tried without making any changes in original TFP_Bearing.cpp and TFP_Bearing.h files. I got the .dll file. I took that file to my folder where I needed to perform analysis. In stead of defining TFP element like
element TFP ........
I defined
element TFP_Bearing.........
However, it stops right at this step without giving any error warning. Could you please suggest what could have gone wrong here?
Thanks,
Manish
Re: Displacement Histories at Sliding Surfaces in TFP
I tried the other way too. I kept the name of files TFPManish.cpp, TFPManish.h and TFPManish was the class name. In the .cpp and .h files I replaced very instance of TFP_Bearing with TFPManish. Obtained the .dll file. Result is still the same.
Re: Displacement Histories at Sliding Surfaces in TFP
Manish,
If you download the latest version of OpenSees.exe you will be able to use recorders for v and vp.
I uploaded the wiki page for TFP so you can see what the recorders are.
If you download the latest version of OpenSees.exe you will be able to use recorders for v and vp.
I uploaded the wiki page for TFP so you can see what the recorders are.
Re: Displacement Histories at Sliding Surfaces in TFP
Thanks a lot Vesna.
However, can you please also tell what I am missing in the approach of making .dll file? It might help later if I want to take some output from some other element.
Manish
However, can you please also tell what I am missing in the approach of making .dll file? It might help later if I want to take some output from some other element.
Manish
Re: Displacement Histories at Sliding Surfaces in TFP
Vesna, can you please check if the new commands are working? I am getting the other element outputs (force) all the columns. However, here is what I am getting when I ask for relativeDisp. I have two different structures, and I am getting numbers for static and dynamic both analyses. Not for the relativeDisp or plasticDisp.
<?xml version="1.0" encoding="UTF-8"?>
<OpenSees
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation = "http://OpenSees.berkeley.edu/xml-schema ... enSees.xsd">
<TimeOutput>
<ResponseType>time</ResponseType>
</TimeOutput>
<ElementOutput eleType="UnknownMovableObject" eleTag="1" node1="1" node2="2"/>
<Data>
0.001
0.002
0.003
0.004
0.005
0.006
0.007
<?xml version="1.0" encoding="UTF-8"?>
<OpenSees
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation = "http://OpenSees.berkeley.edu/xml-schema ... enSees.xsd">
<TimeOutput>
<ResponseType>time</ResponseType>
</TimeOutput>
<ElementOutput eleType="UnknownMovableObject" eleTag="1" node1="1" node2="2"/>
<Data>
0.001
0.002
0.003
0.004
0.005
0.006
0.007
Re: Displacement Histories at Sliding Surfaces in TFP
From your output it looks like it does not recognize the recorder you use.
If you have a model of TFP bearing (1 element model), post it so I can test the recorders.
If you have a model of TFP bearing (1 element model), post it so I can test the recorders.
Re: Displacement Histories at Sliding Surfaces in TFP
#This program is to run a simple model using the TFP element available with OpenSees
wipe
model BasicBuilder -ndm 2 -ndf 3
node 1 0.0 0.0 ;
node 2 0.0 0.3048 ;
fix 1 1 1 1 ;
fix 2 1 0 1 ;
set NodeMass 2;
mass 1 $NodeMass $NodeMass $NodeMass
mass 2 $NodeMass $NodeMass $NodeMass
set R1 0.4064 ;
set R2 0.4064 ;
set R3 2.2352 ;
set R4 2.2352 ;
set D1 0.4064 ;
set D2 0.4064 ;
set D3 1.1176 ;
set D4 1.1176 ;
set d1 0.3048 ;
set d2 0.3048 ;
set d3 0.4064 ;
set d4 0.4064 ;
set mu1 0.20 ;
set mu2 0.20 ;
set mu3 0.80 ;
set mu4 0.80 ;
set h1 0.0762 ;
set h2 0.0762 ;
set h3 0.1016 ;
set h4 0.1016 ;
set H0 0.3048 ;
set colLoad 100 ;
set eleTag_A 1;
set eleTag_B 2;
set eleTag_3 3;
set eleTag_4 4;
set eleTag_5 5;
set eleTag_6 6;
geomTransf Linear 1
element TFP $eleTag_A 1 2 $R1 $R2 $R3 $R4 $D1 $D2 $D3 $D4 $d1 $d2 $d3 $d4 $mu1 $mu2 $mu3 $mu4 $h1 $h2 $h3 $h4 $H0 $colLoad
# Assign and apply the gravity loads first
set accelGravity 9.81;
pattern Plain 1 Linear {
load 2 0 -1500000 0;
}
#Start of gravity analysis
constraints Plain ;
set NumIter 10;
set Tol 1.0e-6;
test NormDispIncr $Tol $NumIter;
numberer RCM ;
system SparseGeneral;
algorithm Newton;
set LoadSteps 10;
set LoadIncr [expr 1.0/$LoadSteps];
integrator LoadControl $LoadIncr;
analysis Static;
#Maintain constant gravity load and reset time to zero
analyze $LoadSteps
loadConst -time 0.0
puts "Gravity applied!"
#Define ground motion pattern
set deltaT 0.001
set dispSeries "Series -dt $deltaT -filePath Displacement.txt -factor 0.15";
pattern Plain 2 $dispSeries {
sp 2 1 2;
} ;
#Define recorder
recorder Node -file Node1Disp.OUT -time -node 1 -dof 1 disp;
recorder Node -file Node2Disp.OUT -time -node 2 -dof 1 disp;
recorder Element -file Ele1.OUT -time -ele 1 force;
recorder Element -xml RelativeDisp.OUT -time -ele 1 plasticDisp;
# Define analysis object
system SparseGeneral
constraints Penalty 90000000000.0 90000000000.0
test NormDispIncr 1.0e-10 20 0
algorithm Newton
numberer Plain
analysis Static
set LoadSteps 1000;
set LoadIncr [expr 1.0/$LoadSteps];
integrator LoadControl $LoadIncr;
analysis Static;
analyze $LoadSteps
wipe
puts "analysis finished"
#source Text1_Static.tcl
wipe
model BasicBuilder -ndm 2 -ndf 3
node 1 0.0 0.0 ;
node 2 0.0 0.3048 ;
fix 1 1 1 1 ;
fix 2 1 0 1 ;
set NodeMass 2;
mass 1 $NodeMass $NodeMass $NodeMass
mass 2 $NodeMass $NodeMass $NodeMass
set R1 0.4064 ;
set R2 0.4064 ;
set R3 2.2352 ;
set R4 2.2352 ;
set D1 0.4064 ;
set D2 0.4064 ;
set D3 1.1176 ;
set D4 1.1176 ;
set d1 0.3048 ;
set d2 0.3048 ;
set d3 0.4064 ;
set d4 0.4064 ;
set mu1 0.20 ;
set mu2 0.20 ;
set mu3 0.80 ;
set mu4 0.80 ;
set h1 0.0762 ;
set h2 0.0762 ;
set h3 0.1016 ;
set h4 0.1016 ;
set H0 0.3048 ;
set colLoad 100 ;
set eleTag_A 1;
set eleTag_B 2;
set eleTag_3 3;
set eleTag_4 4;
set eleTag_5 5;
set eleTag_6 6;
geomTransf Linear 1
element TFP $eleTag_A 1 2 $R1 $R2 $R3 $R4 $D1 $D2 $D3 $D4 $d1 $d2 $d3 $d4 $mu1 $mu2 $mu3 $mu4 $h1 $h2 $h3 $h4 $H0 $colLoad
# Assign and apply the gravity loads first
set accelGravity 9.81;
pattern Plain 1 Linear {
load 2 0 -1500000 0;
}
#Start of gravity analysis
constraints Plain ;
set NumIter 10;
set Tol 1.0e-6;
test NormDispIncr $Tol $NumIter;
numberer RCM ;
system SparseGeneral;
algorithm Newton;
set LoadSteps 10;
set LoadIncr [expr 1.0/$LoadSteps];
integrator LoadControl $LoadIncr;
analysis Static;
#Maintain constant gravity load and reset time to zero
analyze $LoadSteps
loadConst -time 0.0
puts "Gravity applied!"
#Define ground motion pattern
set deltaT 0.001
set dispSeries "Series -dt $deltaT -filePath Displacement.txt -factor 0.15";
pattern Plain 2 $dispSeries {
sp 2 1 2;
} ;
#Define recorder
recorder Node -file Node1Disp.OUT -time -node 1 -dof 1 disp;
recorder Node -file Node2Disp.OUT -time -node 2 -dof 1 disp;
recorder Element -file Ele1.OUT -time -ele 1 force;
recorder Element -xml RelativeDisp.OUT -time -ele 1 plasticDisp;
# Define analysis object
system SparseGeneral
constraints Penalty 90000000000.0 90000000000.0
test NormDispIncr 1.0e-10 20 0
algorithm Newton
numberer Plain
analysis Static
set LoadSteps 1000;
set LoadIncr [expr 1.0/$LoadSteps];
integrator LoadControl $LoadIncr;
analysis Static;
analyze $LoadSteps
wipe
puts "analysis finished"
#source Text1_Static.tcl