StructuralInformation

class sharpy.utils.generate_cases.StructuralInformation[source]

Structural information needed to build a case

add_lumped_mass(node, mass=None, inertia=None, pos=None, mat=None)[source]

Add lumped mass to structure

node(int): Node where the lumped mass is to be placed

For lumped masses: mass(float): Mass inertia(np.array): 3x3 inertia matrix pos(np.array): 3 coordinates of the mass position

For lumped masses described as a 6x6 matrix: mat(np.array): 6x6 mass and inertia matrix

assembly_structures(*args)[source]

This function concatenates structures to be writen in the same h5 File

Parameters:

*args – list of StructuralInformation() to be meged into ‘self’

Notes

The structures does NOT merge any node (even if nodes are defined at the same coordinates)

check_StructuralInformation()[source]

Check some properties of the StructuralInformation()

Notes

These conditions have to be to correctly define a case but they are not the only ones

compute_basic_num_elem()[source]

It computes the number of elements when no nodes are shared between beams

compute_basic_num_node()[source]

It computes the number of nodes when no nodes are shared between beams

copy()[source]

Returns a copy of the object

Returns:

new object with the same properties

Return type:

copied(StructuralInformation)

create_frame_of_reference_delta(y_BFoR='y_AFoR')[source]

Define the coordinates of the yB axis in the AFoR

Parameters:

y_BFoR (string) – Direction of the yB axis

create_mass_db_from_vector(vec_mass_per_unit_length, vec_mass_iner_x, vec_mass_iner_y, vec_mass_iner_z, vec_pos_cg_B, vec_mass_iner_yz=None)[source]

Create the mass matrices from the vectors of properties

Parameters:
  • vec_mass_per_unit_length (np.array) – masses per unit length

  • vec_mass_iner_x (np.array) – inertias around the x axis

  • vec_mass_iner_y (np.array) – inertias around the y axis

  • vec_mass_iner_z (np.array) – inertias around the z axis

  • vec_pos_cg_B (np.array) – position of the masses

  • vec_mass_iner_yz (np.array) – inertias around the yz axis

create_simple_connectivities()[source]

Create the matrix of connectivities for one single beam with the nodes ordered in increasing xB direction

create_stiff_db_from_vector(vec_EA, vec_GAy, vec_GAz, vec_GJ, vec_EIy, vec_EIz, vec_EIyz=None)[source]

Create the stiffness matrices from the vectors of properties

Parameters:
  • vec_EA (np.array) – Axial stiffness

  • vec_GAy (np.array) – Shear stiffness in the y direction

  • vec_GAz (np.array) – Shear stiffness in the z direction

  • vec_GJ (np.array) – Torsional stiffness

  • vec_EIy (np.array) – Bending stiffness in the y direction

  • vec_EIz (np.array) – Bending stiffness in the z direction

  • vec_EIyz (np.array) – Bending stiffness in the yz direction

generate_fem_file(route, case_name)[source]

Writes the h5 file with the structural information

Parameters:
  • route (string) – path of the case

  • case_name (string) – name of the case

generate_full_structure(num_node_elem, num_node, num_elem, coordinates, connectivities, elem_stiffness, stiffness_db, elem_mass, mass_db, frame_of_reference_delta, structural_twist, boundary_conditions, beam_number, app_forces, lumped_mass_nodes=None, lumped_mass=None, lumped_mass_inertia=None, lumped_mass_position=None, lumped_mass_mat_nodes=None, lumped_mass_mat=None)[source]

Defines the whole case from the appropiated variables

Parameters:
  • num_node_elem (int) – number of nodes per element

  • num_node (int) – number of nodes

  • num_elem (int) – number of elements

  • coordinates (np.array) – nodes coordinates

  • connectivities (np.array) – element connectivities

  • elem_stiffness (np.array) – element stiffness index

  • stiffness_db (np.array) – Stiffness matrices

  • elem_mass (np.array) – element mass index

  • mass_db (np.array) – Mass matrices

  • frame_of_reference_delta (np.array) – element direction of the y axis in the BFoR wrt the AFoR

  • structural_twist (np.array) – element based twist

  • boundary_conditions (np.array) – node boundary condition

  • beam_number (np.array) – node beam number

  • app_forces (np.array) – steady applied follower forces at the nodes

  • lumped_mass_nodes (np.array) – nodes with lumped masses

  • lumped_mass (np.array) – value of the lumped masses

  • lumped_mass_inertia (np.array) – inertia of the lumped masses

  • lumped_mass_position (np.array) – position of the lumped masses

  • lumped_mass_mat_nodes (np.array) – nodes with lumped masses given by matrices

  • lumped_mass_mat (np.array) – value of the lumped masses given by matrices

generate_uniform_beam(node_pos, mass_per_unit_length, mass_iner_x, mass_iner_y, mass_iner_z, pos_cg_B, EA, GAy, GAz, GJ, EIy, EIz, num_node_elem=3, y_BFoR='y_AFoR', num_lumped_mass=0, num_lumped_mass_mat=0)[source]

Generates the input data for SHARPy of a uniform beam

Parameters:
  • node_pos (np.array) – coordinates of the nodes

  • mass_per_unit_length (float) – mass per unit length

  • mass_iner_x (float) – Inertia of the mass in the x direction

  • mass_iner_y (float) – Inertia of the mass in the y direction

  • mass_iner_z (float) – Inertia of the mass in the z direction

  • pos_cg_B (np.array) – position of the masses

  • EA (np.array) – Axial stiffness

  • GAy (np.array) – Shear stiffness in the y direction

  • GAz (np.array) – Shear stiffness in the z direction

  • GJ (np.array) – Torsional stiffness

  • EIy (np.array) – Bending stiffness in the y direction

  • EIz (np.array) – Bending stiffness in the z direction

  • num_node_elem (int) – number of nodes per element

  • y_BFoR (str) – orientation of the yB axis

  • num_lumped_mass (int) – number of lumped masses

  • num_lumped_mass_mat (int) – number of lumped masses given as matrices

generate_uniform_sym_beam(node_pos, mass_per_unit_length, mass_iner, EA, GA, GJ, EI, num_node_elem=3, y_BFoR='y_AFoR', num_lumped_mass=0, num_lumped_mass_mat=0)[source]

Generates the input data for SHARPy of a uniform symmetric beam

Parameters:
  • node_pos (np.array) – coordinates of the nodes

  • mass_per_unit_length (float) – mass per unit length

  • mass_iner (float) – Inertia of the mass

  • EA (float) – Axial stiffness

  • GA (float) – Shear stiffness

  • GJ (float) – Torsional stiffness

  • EI (float) – Bending stiffness

  • num_node_elem (int) – number of nodes per element

  • y_BFoR (str) – orientation of the yB axis

  • num_lumped_mass (int) – number of lumped masses

rotate_around_origin(axis, angle)[source]

Rotates a structure

Parameters:
  • axis (np.array) – axis of rotation

  • angle (float) – angle of rotation in radians

set_to_zero(num_node_elem, num_node, num_elem, num_mass_db=None, num_stiffness_db=None, num_lumped_mass=0, num_lumped_mass_mat=0)[source]

Sets to zero all the variables

Parameters:
  • num_node_elem (int) – number of nodes per element

  • num_node (int) – number of nodes

  • num_elem (int) – number of elements

  • num_mass_db (int) – number of different mass matrices in the case

  • num_stiffness_db (int) – number of different stiffness matrices in the case

  • num_lumped_mass (int) – number of lumped masses in the case

  • num_lumped_mass_mat (int) – number of lumped masses given as matrices