mesh = Mesh.from_json(compas_vibro.get('{0}.json'.format(geometry))) s = Structure(path, name) s.add_nodes_elements_from_mesh(mesh, 'ShellElement', elset='shell') d = FixedDisplacement('boundary', mesh.vertices_on_boundary()) s.add(d) section = ShellSection('shell_sec', t=.1) s.add(section) material = ElasticIsotropic('concrete', E=30e9, v=.2, p=2400) s.add(material) el_prop = ElementProperties('concrete_shell', material='concrete', section='shell_sec', elset='shell') s.add(el_prop) s.analyze_modal(backend='ansys', fields=['f', 'u'], num_modes=20) s.to_obj() v = ModalViewer(s) v.show() modes = s.results['modal'].keys() for mode in modes: f = s.results['modal'][mode].frequency pf = s.results['modal'][mode].pfact['z'] em = s.results['modal'][mode].efmass['z'] print(mode, f, pf, em)
name = 'opensees_{0}_modal'.format(geometry) mesh = Mesh.from_json(compas_vibro.get('{0}.json'.format(geometry))) s = Structure(path, name) s.add_nodes_elements_from_mesh(mesh, 'ShellElement', elset='shell') d = FixedDisplacement('boundary', mesh.vertices_on_boundary()) s.add(d) section = ShellSection('shell_sec', t=.2) s.add(section) material = ElasticIsotropic('concrete', E=30e9, v=.2, p=2400) s.add(material) el_prop = ElementProperties('concrete_shell', material='concrete', section='shell_sec', elset='shell') s.add(el_prop) s.analyze_modal(backend='opensees', fields=['f', 'u'], num_modes=20) s.to_obj() v = ModalViewer(s) v.show() modes = s.results['modal'].keys() for mode in modes: f = s.results['modal'][mode].frequency print(mode, f)