Page 1 of 1

How to use mode shape result after analysis

Posted: Mon Sep 06, 2021 6:02 am
by gookki
https://www.youtube.com/watch?v=MJFf51Vi6ts

I took the 12th Webinar lecture and applied it to conduct a modal analysis of the slightly modified model.

With this mode analysis result, I would like to input the story shear force corresponding to the mode shape in a pushover method, but is there a way to check the shear force in the mode shape in the post processor?

Re: How to use mode shape result after analysis

Posted: Mon Sep 06, 2021 7:47 am
by marafini.f
Dear gokki,
Mode shapes are one of the intrinsic dynamic characteristics of a structure, together with frequency and damping, I am sure you know that they represent deformations not force.

What you can do is extract the value of "ModesOfVibration(U)", which is the deformation in terms of displacement at a specific node of the structure, and then apply such values as a prescribed displacement to your structure in a load control pushover analysis. This was you can do a modal proportional pushover.

If you need any assistance in performing this let us know.

Enjoy your modeling:geek:
Francesca

Re: How to use mode shape result after analysis

Posted: Mon Sep 06, 2021 9:49 am
by gookki
How can I extract modes of vibration values from a specific node?
I tried many ways, but I couldn't find a way to pull it out with data. However, I understand that using the show function, I can check by reading the legend value by activating only the points in a specific location on the screen. Is there any better way?

Re: How to use mode shape result after analysis

Posted: Mon Sep 06, 2021 11:31 am
by marafini.f
Dear gokki,

you can access the eigenvector values if you open the database with HDF viewer. Like this:
1.PNG
1.PNG (91.75 KiB) Viewed 3488 times
If you know some tcl you can use the following script in a customCommand to run a modal analysis and save the eigenvector at a specified list of nodes:

Code: Select all

proc modal { num_modes filename1 {eig_solver -genBandArpack}} {

	# begin
	puts "\nRunning modal analysis ..."

	# get all node tags
	set nodes [getNodeTags]
	if {[llength $nodes] == 0} {
		error "modal - Error: no node in model"
	}

	# check problem size (2D or 3D) from the first node, we do not support mixed dimesions!!
	set ndm [llength [nodeCoord [lindex $nodes 0]]]

	# compute total masses
	if {$ndm == 3} { 
		set ndf_max 6 
		set total_mass {0.0 0.0 0.0 0.0 0.0 0.0}
		set mass_labels {"MX" "MY" "MZ" "MRX" "MRY" "MRZ"}
		set mass_labels1 {"MODE" "MX" "MY" "MZ" "MRX" "MRY" "MRZ"}
	} else {
		set ndf_max 3
		set total_mass {0.0 0.0 0.0}
		set mass_labels {"MX" "MY" "MRZ"}
		set mass_labels1 {"MODE" "MX" "MY" "MRZ"}
	}
	foreach node $nodes {
		set indf [llength [nodeDisp $node]]
		for {set i 0} {$i < $indf} {incr i} {
			set imass [nodeMass $node [expr $i+1]]
			set imass_total [lindex $total_mass $i]
			lset total_mass $i [expr $imass_total + $imass]
		}
	}

	# some constants
	set pi [expr acos(-1.0)]
	
	#modalDamping 0.02 0.02
	
	# solve the eigenvalue problem
	set lambdas [eigen $eig_solver $num_modes]
	if {[llength $lambdas] != $num_modes} {
		error "modal - Error: something went wrong in the eigen analysis"
	}

	#open a new document to record the values of the eigenvectors
	set fp1 [open $filename1 w]

	#set nodes_x {8} where we are interested in recording the eigenvectors TO BE EDITED!!!!
	set nodes_x {12 9 7 4 6 11}

	# process each mode of vibration
	for {set imode 0} {$imode < $num_modes} {incr imode} {

		# compute i-mode eigen analysis derived data
		set lambda [lindex $lambdas $imode]
		set omega [expr {sqrt($lambda)}]
		set omega [expr {sqrt($lambda)}]
		set frequency [expr $omega / 2.0 / $pi]
		set period [expr 1.0 / $frequency]

		foreach node $nodes_x {
			# get eigenvector
			puts $node
			set V [nodeEigenvector $node [expr $imode+1]]
			puts $fp1 "$node  $V"
		}

	}
	# done
	close $fp1
	puts "\nModal Analysis done\n"
}

#ask for the number of modes you want to extract
modal 4 "_eigenvectors.txt" "_frequencies.txt"
record


Unfortunately at the moment there is not the possibility to extract eigenvectors from the post-processor as a table.

Re: How to use mode shape result after analysis

Posted: Tue Sep 07, 2021 2:57 am
by gookki
Both methods were useful and well utilized. Thanks, especially the tcl language, which I haven't dealt with recently, but the code was very helpful.
It was also useful to check the analysis results with the hdf viewer.

Re: How to use mode shape result after analysis

Posted: Tue Sep 07, 2021 7:31 am
by marafini.f
You are welcome. :geek: