Page 1 of 2

Time History Analysis

Posted: Wed Nov 17, 2021 12:17 am
by akshaysomkuwar123
Hello,

I am trying to do time history analysis of a reticulated dome and its validation from published article. The span of the dome is 40 m and height is 13.33 m. I am using force beam column element in my model, with initial imperfection of L/300 at the middle. I was able to validate the model frequencies with sufficient accuracy but the results from my time history analysis is not matching with the results in the article.
What could be the problem?
Any suggestions will be very helpful.

Thank you

Re: Time History Analysis

Posted: Wed Nov 17, 2021 10:37 am
by marafini.f
Could you send us your model and the reference article?

Re: Time History Analysis

Posted: Thu Nov 18, 2021 12:10 am
by akshaysomkuwar123
Thank you for the reply.

Please find the attached zip file containing model and the article. Please see the section 4 "Finite element model of prototype single-layer reticulated dome" of the article.

Re: Time History Analysis

Posted: Fri Nov 19, 2021 9:35 am
by marafini.f
Hi akshaysomkuwar123,

now I remember your model. You were doing it back in April already.
So I can't really go into the details of the article to study it.
But I can suggest you to look up these webinars on time history analysis:

https://asdeasoft.net/?get-started-webinars#w16
https://asdeasoft.net/?webinar#018

And maybe suggest you to check if all of the following parameters in your model match the article you are trying to reproduce:

- mass
- stiffness
- time history
- analysis duration and increment
- integrator and its parameter
- even different algorithms

Let me know if something in comparing these elements comes out.

Enjoy your modeling
Francesca

Re: Time History Analysis

Posted: Fri Nov 19, 2021 11:54 am
by akshaysomkuwar123
Yes it is the same project that I am working on from last April
Since modal frequencies are matching with sufficient accuracy I assume the mass and stiffness are accurate. In the article they have used Thaft earthquake with 0.5g I am also using the same. Since the original analysis was done in Abaqus by the author, it is difficult to find out analysis duration and increment and other parameters related to the analysis.

Thank you for the reply and thank you for the suggestions.

Re: Time History Analysis

Posted: Fri Nov 19, 2021 2:01 pm
by marafini.f
Maybe you can search which are the most common setups in Abaqus so you can compare. Or even articles that make Abaqus-OpenSees comparisons.
Anyway, also for using things which are expressed in g. Be careful with your units. If you want to input a time history in g, you should make sure it is consistent with the rest of your units. If the model is in N mm for example you should consider gravity as 9810 mm/s^2.
Just a reminder.
Francesca

Re: Time History Analysis

Posted: Fri Dec 10, 2021 12:40 am
by akshaysomkuwar123
How one can record or calculate the Energy of the structure (total energy, max energy, damping energy) from opensees?

Re: Time History Analysis

Posted: Fri Dec 10, 2021 9:00 am
by STKO Team
Unfortunately, there is not such a direct output in OpenSees.

OpenSees offers the tools to obtain results from which you can compute different energy components for each element (for example strain energy density from stress and strain, damping forces for damping energy... ).
Then you would need to integrate those quantities manually over each element.

However, it is not an easy task. There are energy components, such as energy dissipated by plasticity, damage, creep, friction, etc.. which are material dependent.

Re: Time History Analysis

Posted: Tue Dec 14, 2021 2:05 am
by akshaysomkuwar123
Is there a way to get displacement vector from OpenSees like the stiffness and mass matrix ?

Re: Time History Analysis

Posted: Wed Dec 15, 2021 9:17 am
by STKO Team
Not the full vector as in "printA" command (for stiffness) and "printB" (for unbalanced vector).
but you can do a loop on all nodes like this:

Code: Select all

# get all nodes
set all_nodes [getNodeTags]
# find the largest dof for memory allocation
set max_dof 0
foreach node $all_nodes {
	set dofs [nodeDOFs $node]
	foreach dof $dofs {
		set max_dof [expr max($max_dof, $dof)]
	}
}
# allocate U
set U [lrepeat [expr $max_dof + 1] 0.0]
# fill U
foreach node $all_nodes {
	# get nodal dofs
	set dofs [nodeDOFs $node]
	# get nodal displacements
	set disp [nodeDisp $node]
	# process each dof
	for {set i 0} {$i < [llength $disp]} {incr i} {
		set idof [lindex $dofs $i]
		# consider only retained dofs (constrained dofs = -1)
		if {$idof >= 0} {
			# get dof displacement
			set idisp [expr [lindex $disp $i]]
			# put current dof displacement in the global vector
			lset U $idof $idisp
		}
	}
}
# print U
puts $U