pyHarm.KinematicConditions.ABCKinematic

Classes

ABCKinematic

This is the abstract class ruling the kinematic conditions class. The kinematic conditions are responsible to impose kinematic on dofs of the system and transfer the residuals.

Module Contents

class pyHarm.KinematicConditions.ABCKinematic.ABCKinematic(nh: int, nti: int, name: str, data: dict, CS: pyHarm.CoordinateSystem.CoordinateSystem, dynop: dict[str, numpy.ndarray] | None = None)

Bases: abc.ABC

This is the abstract class ruling the kinematic conditions class. The kinematic conditions are responsible to impose kinematic on dofs of the system and transfer the residuals.

Parameters:
  • nh (int) – number of harmonics.

  • nti (int) – number of time steps.

  • name (str) – name given to the kinematic condition.

  • data (dict) – dictionary containing all the definition information of the kinematic condition.

  • CS (CoordinateSystem) – local or global coordinate system the kinematic condition is defined on.

nh

number of harmonics.

Type:

int

nti

number of time steps.

Type:

int

D

Dynamic operators containing inverse discrete Fourier transform and discrete Fourier transform.

Type:

dict[np.ndarray,np.ndarray]

nabla

Derivation operator.

Type:

np.ndarray

indices

index of the dofs that the kinematic conditions needs.

Type:

np.ndarray

Pdir

a slice of first dimension is a transformation matrix to a direction in local coordinate system.

Type:

np.ndarray

Pslave

selection array that selects the slave dofs of the kinematic condition.

Type:

np.ndarray

Pmaster

selection array that selects the master dofs of the kinematic condition.

Type:

np.ndarray

subs

list containing the name of the substructures that are involved.

Type:

list[str]

nbSub

number of substructure involved.

Type:

int

nodes

list of list of nodes the kinematic conditions act on.

Type:

list[list]

nbdofi

number of nodes involved per substructure.

Type:

int

abstract property factory_keyword
__init_flags__()
__init_harmonic_operators__(nh, nti, data: dict, dynop: dict[str, numpy.ndarray] | None = None)
__init_data__(name, data, CS)
__str__()
__repr__()
__post_init__(*args)
__flag_update__(*args)
generateIndices(expl_dofs: pandas.DataFrame)

From the explicit dof DataFrame, generates the index of dofs concerned by the connector.

Parameters:

expl_dofs (pd.DataFrame) – explicit dof DataFrame from the studied system.

indices

index of the dofs that the connector needs.

Type:

np.ndarray

Pdir

a slice of first dimension is a transformation matrix to a direction in local coordinate system.

Type:

np.ndarray

Pslave

selection array that selects the slave dofs of the connector.

Type:

np.ndarray

Pmaster

selection array that selects the master dofs of the connector.

Type:

np.ndarray

_gen_Pdir(_components)
abstractmethod adim(lc, wc)

Using adim parameters, modifies the kinematic conditions accordingly.

Parameters:
  • lc (float) – characteristic length.

  • wc (float) – characteristic angular frequency.

abstractmethod complete_x(x, om)

Returns a vector x_add of same size of x that completes the vector of displacement x = x + x_add.

Parameters:
  • x (np.ndarray) – displacement vector.

  • om (float) – angular frequency.

abstractmethod complete_R(R, x)

Returns a vector R_add of same size of R that completes the vector of residual R = R + R_add

Parameters:
  • R (np.ndarray) – residual vector.

  • x (np.ndarray) – displacement vector.

abstractmethod complete_J(Jx, Jom, x)

Returns a vector Jx_add and Jom_add of same size of Jx and Jom that completes the Jacobian

Parameters:
  • Jx (np.ndarray) – jacobian matrix with respect to displacement.

  • Jom (np.ndarray) – jacobian matrix with respect to angular frequency.

  • x (np.ndarray) – displacement vector.