bluemira.structural.symmetry

Symmetry boundary conditions

Classes

CyclicSymmetry

Utility class for implementing a cyclical symmetry boundary condition in

Module Contents

class bluemira.structural.symmetry.CyclicSymmetry(geometry: bluemira.structural.geometry.Geometry, cycle_sym_ids: list[list[int], list[int]])

Utility class for implementing a cyclical symmetry boundary condition in FiniteElementModel

Parameters:
  • geometry (bluemira.structural.geometry.Geometry) – The geometry upon which to apply the cyclic symmetry

  • cycle_sym_ids (list[list[int], list[int]]) – The list of left and right DOF ids

geometry
cycle_sym_ids
t_block = None
t_matrix = None
left_nodes = None
right_nodes = None
theta = None
n = None
axis = None
selections = None
_prepare_cyclic_symmetry()
_build_t_matrix(n)
apply_cyclic_symmetry(k: numpy.ndarray, p: numpy.ndarray) tuple[numpy.ndarray, numpy.ndarray]

Apply the cyclic symmetry condition to the matrices.

Will simply return k and p if no cyclic symmetry is detected in the FiniteElementModel.

Parameters:
  • k (numpy.ndarray) – The geometry stiffness matrix

  • p (numpy.ndarray) – The model load vector

Returns:

  • k – The partitioned block stiffness matrix

  • p – The partitioned block load vector

Return type:

tuple[numpy.ndarray, numpy.ndarray]

reorder(u_original: numpy.ndarray) numpy.ndarray

Re-order the displacement vector correctly, so that the deflections may be applied to the correct nodes.

If not cyclic symmetry is detected in the FiniteElementModel, simply returns u_original.

Parameters:

u_original (numpy.ndarray) – The original deflection vector

Return type:

The re-ordered deflection vector