p = 2400 thickness = .02 matname = 'concrete' concrete = ElasticIsotropic(name=matname, E=E, v=v, p=p) s.add_material(concrete) section = ShellSection(name='concrete_sec', t=thickness) s.add_section(section) prop = ElementProperties(name='floor', material=matname, section='concrete_sec', elsets=['shell']) s.add_element_properties(prop) # add gravity load ------------------------------------------------------------- s.add_load(GravityLoad(name='load_gravity', elements=['shell'])) # add steps -------------------------------------------------------------------- step = GeneralStep(name='gravity_step', nlgeom=False, displacements=['supports'], loads=['load_gravity'], type='static') s.add_steps([step]) s.steps_order = ['gravity_step'] # analyse ----------------------------------------------------------------------
'w_l2': {'pos': -0.045, 'spacing': 0.100, 'material': 'mat_rebar', 'dia': 0.010, 'angle': 90}, 'w_l1': {'pos': -0.055, 'spacing': 0.100, 'material': 'mat_rebar', 'dia': 0.010, 'angle': 0}} mdl.add_element_properties([ Properties(name='ep_plinth', material='mat_concrete', section='sec_plinth', elsets='elset_plinth', reinforcement=reb_plinth), Properties(name='ep_wall', material='mat_concrete', section='sec_wall', elsets='elset_wall', reinforcement=reb_wall)]) # Displacements mdl.add_displacement(FixedDisplacement(name='disp_fixed', nodes='nset_fixed')) # Loads mdl.add_load(GravityLoad(name='load_gravity', elements=['elset_wall', 'elset_plinth'])) components = {} for guid in rs.ObjectsByLayer('nset_loads'): px, py, pz = rs.ObjectName(guid).split(' ') components[mdl.check_node_exists(rs.PointCoordinates(guid))] = {'z': float(pz)*100} mdl.add_load(PointLoads(name='load_points', components=components)) loads = ['load_gravity', 'load_points'] # Steps mdl.add_steps([ GeneralStep(name='step_bc', nlgeom=False, displacements=['disp_fixed']), GeneralStep(name='step_loads', nlgeom=False, loads=loads)]) mdl.steps_order = ['step_bc', 'step_loads'] # Summary
# Sections mdl.add_section(RectangularSection(name='sec_rect', b=1, h=1)) # Properties ep = Properties(name='ep', material='mat_elastic', section='sec_rect', elsets='elset_lines') mdl.add_element_properties(ep) # Displacements mdl.add_displacement(FixedDisplacement(name='disp_fixed', nodes='nset_support')) # Loads mdl.add_load(PointLoad(name='load_point', nodes='nset_load', z=600)) # Steps mdl.add_steps([ GeneralStep(name='step_bc', displacements=['disp_fixed']), GeneralStep(name='step_load', loads=['load_point'])]) mdl.steps_order = ['step_bc', 'step_load'] # Summary mdl.summary() # Run (Sofistik) # Note: Sofistik depends on input with correct SI units, model and data must be # converted from lbs and inches.
Properties(name='ep_joints', material='mat_bamboo', section='sec_joints', elsets=s3) ]) # Displacements mdl.add_displacements([ PinnedDisplacement(name='disp_bot', nodes='supports_bot'), RollerDisplacementZ(name='disp_top', nodes='supports_top') ]) # Loads mdl.add_load(GravityLoad(name='load_gravity', elements=layers)) # Steps mdl.add_steps([ GeneralStep(name='step_bc', displacements=['disp_bot', 'disp_top']), GeneralStep(name='step_loads', loads=['load_gravity']) ]) mdl.steps_order = ['step_bc', 'step_loads'] # Summary mdl.summary() # Run (Abaqus)
# Properties mdl.add_element_properties( Properties(name='ep_tets', material='mat_elastic', section='sec_solid', elsets='elset_tets')) # Displacementss mdl.add_displacement(PinnedDisplacement(name='disp_pinned', nodes='base')) # Loads mdl.add_load(PointLoad(name='load_top', nodes='top', y=1000, z=1000)) # Steps mdl.add_steps([ GeneralStep(name='step_bc', displacements=['disp_pinned']), GeneralStep(name='step_load', loads=['load_top']) ]) mdl.steps_order = ['step_bc', 'step_load'] # Summary mdl.summary() # Run (Abaqus)
elsets='spring_top_left'), Properties(name='ep_tr', section='spring_elastic', elsets='spring_top_right') ]) # Displacements mdl.add_displacements([ PinnedDisplacement(name='disp_pins', nodes='pins'), RollerDisplacementXZ(name='disp_roller', nodes='middle') ]) # Loads mdl.add_load(PointLoad(name='load_middle', nodes='middle', z=-500)) # Steps mdl.add_steps([ GeneralStep(name='step_bc', displacements=['disp_pins', 'disp_roller']), GeneralStep(name='step_load', loads=['load_middle']) ]) mdl.steps_order = ['step_bc', 'step_load'] # Summary` mdl.summary() # Run (Sofistik)
# Properties ep = Properties(name='ep_strut', material='mat_elastic', section='sec_truss', elsets='elset_struts') mdl.add_element_properties(ep) # Displacements mdl.add_displacement(PinnedDisplacement(name='disp_pinned', nodes='nset_pins')) # Loads mdl.add_load(PointLoad(name='load_top', nodes='nset_top', z=-100000)) # Steps mdl.add_steps([ GeneralStep(name='step_bc', displacements='disp_pinned'), GeneralStep(name='step_load', loads='load_top', nlmat=False) ]) mdl.steps_order = ['step_bc', 'step_load'] # Summary mdl.summary() # Run (Abaqus)
# Properties ep = Properties(name='ep_plate', material='mat_elastic', section='sec_plate', elsets='elset_mesh') mdl.add_element_properties(ep) # Displacements mdl.add_displacement( PinnedDisplacement(name='disp_pinned', nodes='nset_corners')) # Loads mdl.add_load(GravityLoad(name='load_gravity', elements='elset_mesh')) # Steps mdl.add_steps([ GeneralStep(name='step_bc', displacements=['disp_pinned']), GeneralStep(name='step_load', loads=['load_gravity']) ]) mdl.steps_order = ['step_bc', 'step_load'] # Summary mdl.summary() # Run (Abaqus)
# Displacements deg = pi / 180 mdl.add_displacements([ PinnedDisplacement(name='disp_bc_left', nodes='nset_left'), GeneralDisplacement(name='disp_bc_right', nodes='nset_right', y=0, z=0, xx=0), GeneralDisplacement(name='disp_left', nodes='nset_left', yy=30 * deg), ]) # Loads mdl.add_load(PointLoad(name='load_weights', nodes='nset_weights', z=-200.0)) # Steps mdl.add_steps([ GeneralStep(name='step_bc', displacements=['disp_bc_left', 'disp_bc_right']), GeneralStep(name='step_load', loads=['load_weights'], displacements=['disp_left']) ]) mdl.steps_order = ['step_bc', 'step_load'] # Summary mdl.summary()
# Add element properties ep1 = Properties(name='ep_circ', material='mat_elastic', section='sec_circ', elsets='elset_beams') ep2 = Properties(name='ep_shell', material='mat_elastic', section='sec_shell', elsets='elset_shell') mdl.add_element_properties(ep1) mdl.add_element_properties(ep2) # Add loads mdl.add_load(PointLoad(name='load_point', nodes='nset_top', x=10000, z=-10000)) mdl.add_load(GravityLoad(name='load_gravity', elements='elset_beams')) # print('load_point components: ', mdl.loads['load_point'].components) # Add displacements mdl.add_displacement(PinnedDisplacement(name='disp_pinned', nodes='nset_base')) # print('disp_pinned components: ', mdl.displacements['disp_pinned'].components) # Add steps mdl.add_step(GeneralStep(name='step_bc', displacements=['disp_pinned'])) mdl.add_step( GeneralStep(name='step_loads', loads=['load_point', 'load_gravity']))
material='mat_steel', section='sec_ends', elsets='elset_ends') ]) # Displacements mdl.add_displacements([ RollerDisplacementY(name='disp_top', nodes='nset_top'), RollerDisplacementY(name='disp_bot', nodes='nset_bot') ]) displacements = ['disp_top', 'disp_bot'] # Loads mdl.add_load(GravityLoad(name='load_gravity', elements='elset_mesh')) loads = ['load_gravity', 'load_points'] Gc = 2400 * 9.81 mesh = mesh_from_guid(Mesh(), rs.ObjectsByLayer('elset_mesh')[0]) surface = rs.ObjectsByLayer('surface')[0] point_loads = {} for key in mesh.vertices(): xyz = mesh.vertex_coordinates(key) node = mdl.check_node_exists(xyz) pt = rs.ProjectPointToSurface([xyz], surface, [0, 0, 1])[0] pz = mesh.vertex_area(key) * distance_point_point(xyz, pt) * Gc point_loads[node] = {'z': -pz} mdl.add_load(PointLoads(name='load_points', components=point_loads))
ep = Properties(name='ep', material='mat_linear', section='sec_plate', elsets='elset_mesh') mdl.add_element_properties(ep) # Displacements mdl.add_displacements([ PinnedDisplacement(name='disp_left', nodes='nset_left'), RollerDisplacementX(name='disp_right', nodes='nset_right') ]) # Loads mdl.add_load(PointLoad(name='load_point', nodes='nset_load', y=100, z=-300)) # Steps mdl.add_steps([ GeneralStep(name='step_bc', displacements=['disp_left', 'disp_right']), GeneralStep(name='step_load', loads=['load_point'], tolerance=1, iterations=500) ]) mdl.steps_order = ['step_bc', 'step_load'] # Summary mdl.summary()