Perform Dynamic Analysis Consecutively
Moderators: silvia, selimgunay, Moderators
Perform Dynamic Analysis Consecutively
Hello,
I am trying to perform two dynamic analysis consecutively, in order to simulate the mainshock and the aftershocks.
I think that, after the execution of the analyze command, the program keeps the state of the structure (stresses and deformations), isn't it? I think that it is true for all types of analysis as well.
On the other hand, after the gravity loads had been applied and the "loadConst" command called, I thought that those loads would remain on the structure until the end. Is this true? I have serious doubts on this, because after the first dynamic analysis is complete I call the second one and the processing seems to occur without trouble but, when I looked at the records, I realized that on the second one the structure is on "free vibration" (sorry, I don't know if this is the right term). I mean that the structure seem to not be influenced by the ground motion (like it doesn't have loads).
I thought that after the first dynamic analysis the program would forget the gravity loads applied and then, I tried to use the command "loadConst" there. Surprisingly (or not), the structure seems to behave like I was expecting, which means: (1)the state, in terms of stress-deformation is kept and (2)the structure has a response to the second ground motion.
I am not very confident on this so I would appreciate some advice.
Thank you very much for the time you could spend helping me.
Filipe Ribeiro
I am trying to perform two dynamic analysis consecutively, in order to simulate the mainshock and the aftershocks.
I think that, after the execution of the analyze command, the program keeps the state of the structure (stresses and deformations), isn't it? I think that it is true for all types of analysis as well.
On the other hand, after the gravity loads had been applied and the "loadConst" command called, I thought that those loads would remain on the structure until the end. Is this true? I have serious doubts on this, because after the first dynamic analysis is complete I call the second one and the processing seems to occur without trouble but, when I looked at the records, I realized that on the second one the structure is on "free vibration" (sorry, I don't know if this is the right term). I mean that the structure seem to not be influenced by the ground motion (like it doesn't have loads).
I thought that after the first dynamic analysis the program would forget the gravity loads applied and then, I tried to use the command "loadConst" there. Surprisingly (or not), the structure seems to behave like I was expecting, which means: (1)the state, in terms of stress-deformation is kept and (2)the structure has a response to the second ground motion.
I am not very confident on this so I would appreciate some advice.
Thank you very much for the time you could spend helping me.
Filipe Ribeiro
Re: Perform Dynamic Analysis Consecutively
Hi,
I had exactly the same problem i.e. I got free vibration response. The problem is the loadconst command. delete this command from your code because it resets all the loads applied.
Hope to been helpful,
regards,
MJ
I had exactly the same problem i.e. I got free vibration response. The problem is the loadconst command. delete this command from your code because it resets all the loads applied.
Hope to been helpful,
regards,
MJ
Re: Perform Dynamic Analysis Consecutively
Thanks for your reply
Do you really mean to completely remove the loadConst command from the code? In my case it seems to work when I add it between the two dynamic analysis (as I said before, if I don't put it I get free vibration on the second dynamic analysis), but if I remove it from the code (I mean, remove the loadConst command after apply the gravity load) I am not able to converge the analysis, did this happen to you as well?
Did you remove the loadConst from the code and it just worked fine without trouble?
Thanks.
Filipe Ribeiro
Do you really mean to completely remove the loadConst command from the code? In my case it seems to work when I add it between the two dynamic analysis (as I said before, if I don't put it I get free vibration on the second dynamic analysis), but if I remove it from the code (I mean, remove the loadConst command after apply the gravity load) I am not able to converge the analysis, did this happen to you as well?
Did you remove the loadConst from the code and it just worked fine without trouble?
Thanks.
Filipe Ribeiro
Re: Perform Dynamic Analysis Consecutively
Using the loadconst command immediately after gravity analysis and before dynamic analysis wont cause any problems.But you shouldnt use it inside your dynamic analysis code. I too had some convergance problems,to solve this problem, try changing the tolerance of analysis( I used 1e-4). You can also use different algorithms or integrators for yourdynamic analysis to reach convergance. I suggest you use this codefor your dynamic analysis: :
"Ex6.genericFrame2D.analyze.Dynamic.EQ.Uniform.tcl" ( u can download it from opensees wiki website).
regards,
MJ
"Ex6.genericFrame2D.analyze.Dynamic.EQ.Uniform.tcl" ( u can download it from opensees wiki website).
regards,
MJ
Re: Perform Dynamic Analysis Consecutively
do not remove the loadConst command .. if you do the grav loads will keep getting bigger if they are not used with a constant load pattern .. if you want to check if the gravity loads are there after you issue the command just print a node at which you have applied a load.
Re: Perform Dynamic Analysis Consecutively
I did what you said and I realized that there is no problem with the grav loads. I found the problem is the uniformExcitation itself. I defined the uniform excitation using timeSeries in order to get the absolute accel. Then I recorded the accel of the base nodes (whose accel must be the same of the timeSeries - but it isn't). During the second dynamic analysis the accel of the base nodes is 0.0. That's why I wouldn't get a response during the second dynamic analysis.
I am probabily missing something on the code.. I define to uniformExcitation 's. For the first dynamic analysis I execute an enough number steps to cover all the points of first timeSeries (and uniformExcitation) defined. And then I do the same for the second one. I am thinking that probabily on the second analysis the programs is still reading the first uniformExcitation, which is 0.0 by there.. I tried to, after the first analysis is finished, to remove the first uniformExcitation (using "remove loadPattern $IDloadPattern") but the problem remains.
By now, I found a solution which allows me to get through this. Using Matlab, I am putting the two timeSeries together on the same file, and then define just one uniformExcitation. I execute the number of steps I want to do the first analysis and then execute the second one still with the same pattern. I think that this works fine, but I would like to know what I am doing wrongly..
Thanks for your support. Any ideas?
Filipe Ribeiro
I am probabily missing something on the code.. I define to uniformExcitation 's. For the first dynamic analysis I execute an enough number steps to cover all the points of first timeSeries (and uniformExcitation) defined. And then I do the same for the second one. I am thinking that probabily on the second analysis the programs is still reading the first uniformExcitation, which is 0.0 by there.. I tried to, after the first analysis is finished, to remove the first uniformExcitation (using "remove loadPattern $IDloadPattern") but the problem remains.
By now, I found a solution which allows me to get through this. Using Matlab, I am putting the two timeSeries together on the same file, and then define just one uniformExcitation. I execute the number of steps I want to do the first analysis and then execute the second one still with the same pattern. I think that this works fine, but I would like to know what I am doing wrongly..
Thanks for your support. Any ideas?
Filipe Ribeiro
Re: Perform Dynamic Analysis Consecutively
Sorry for the big text, hope you don't get
I have another possible reason to explain this situation:
When a timeSeries and a uniformExcitation is defined the first point corresponds to the time 0.0 isn't it ??
When I start the second dynamic analysis the time is, e.g. 70s, so at that time there is no uniformExcitation defined..
If this is true, what I have been doing is define two uniform excitation in parallel, using for the analysis the last which had been assigned.
Thanks one more time.
Filipe Ribeiro
I have another possible reason to explain this situation:
When a timeSeries and a uniformExcitation is defined the first point corresponds to the time 0.0 isn't it ??
When I start the second dynamic analysis the time is, e.g. 70s, so at that time there is no uniformExcitation defined..
If this is true, what I have been doing is define two uniform excitation in parallel, using for the analysis the last which had been assigned.
Thanks one more time.
Filipe Ribeiro
Re: Perform Dynamic Analysis Consecutively
Amplitude Dependent Damping
I believe I am trying to do something similar but after reading these posts I am still unclear about what actually made your analysis work. What I am trying to do is run a single ground motion sequentially using a series of files that each gontain a segment of the ground motion time history. I am doing this because I need to model amplitude dependent damping. The only approach I have come up with to do this is to run the ground motion in segments, check the displacement of the structure, update the damping of the structure and continue the analysis by running the next segment of ground motion time history. The logic flow should go something like this:
1.) Run first ground motion segment
2.) Check displacement response amplitude of structure
3.) Iterate damping value based on the structural response
4.) Run next segment of ground motion
5.) Check displacement response amplitude of structure
6.) Iterate damping value based on new displacement amplitude
7.) Repeat…
In order to do this I would need to restart the time history analysis each time with the initial conditions of the structure from the last instant of the previous analysis. Is there any way to do a “warm restart” by preserving the current state of the structure and using that as the initial conditions for the next analysis?
I would appreciate any help in this matter or any advice regarding modeling amplitude dependent structural damping in general.
Thank you,
Andrew
I believe I am trying to do something similar but after reading these posts I am still unclear about what actually made your analysis work. What I am trying to do is run a single ground motion sequentially using a series of files that each gontain a segment of the ground motion time history. I am doing this because I need to model amplitude dependent damping. The only approach I have come up with to do this is to run the ground motion in segments, check the displacement of the structure, update the damping of the structure and continue the analysis by running the next segment of ground motion time history. The logic flow should go something like this:
1.) Run first ground motion segment
2.) Check displacement response amplitude of structure
3.) Iterate damping value based on the structural response
4.) Run next segment of ground motion
5.) Check displacement response amplitude of structure
6.) Iterate damping value based on new displacement amplitude
7.) Repeat…
In order to do this I would need to restart the time history analysis each time with the initial conditions of the structure from the last instant of the previous analysis. Is there any way to do a “warm restart” by preserving the current state of the structure and using that as the initial conditions for the next analysis?
I would appreciate any help in this matter or any advice regarding modeling amplitude dependent structural damping in general.
Thank you,
Andrew
Re: Perform Dynamic Analysis Consecutively
resetting the time to 0.0 does not change the state of the model .. your proposal is fine .. you can also do this by just using a single input motion file and resetting the damping values when you need to in the script between analysis steps, i.e.
if you know them before the start:
forach {numIncr alphaM betaK} {100 0.001 0.0001 200 0.002 0.0002 100 0.003 0.0003} {
rayleigh $alphaM $betaK 0.0 0.0
analyze $numIncr $dt
}
if you want a new one for each step:
while {$tCurrent < $tFinal} {
analyze 1 $dt
determinRayleigh; # a procedure to determine rayleigh factors at each step
set tCurrent [getTime]
}
if you know them before the start:
forach {numIncr alphaM betaK} {100 0.001 0.0001 200 0.002 0.0002 100 0.003 0.0003} {
rayleigh $alphaM $betaK 0.0 0.0
analyze $numIncr $dt
}
if you want a new one for each step:
while {$tCurrent < $tFinal} {
analyze 1 $dt
determinRayleigh; # a procedure to determine rayleigh factors at each step
set tCurrent [getTime]
}