ross.SqueezeFilmDamper#

class ross.SqueezeFilmDamper(n, frequency, axial_length, journal_radius, radial_clearance, eccentricity_ratio, lubricant, geometry='groove', cavitation=True, tag=None, scale_factor=1.0)#

Squeeze Film Damper (SFD) element in ROSS standard format. Computes damping (co), stiffness (ko), maximum pressure (p_max) and pressure angle (theta_m) based on classical short-bearing theory.

Parameters:
Bearing Geometry
^^^^^^^^^^^^^^^^
Describes the geometric characteristics.
nint

Node in which the bearing will be located.

frequencylist, pint.Quantity

Array with the frequencies (rad/s).

axial_lengthfloat, pint.Quantity

Bearing length. Default unit is meter.

journal_radiusfloat

Rotor radius. The unit is meter.

radial_clearancefloat

Radial clearence between rotor and bearing. The unit is meter.

eccentricity_ratiofloat

Normal cases, utilize the eccentricity radio < 0.4, because this gap has better propieties. It’s a dimensioneless parametre.

lubricantstr or dict

Lubricant type. Can be: - ‘ISOVG32’ - ‘ISOVG46’ - ‘ISOVG68’ Or a dictionary with lubricant properties.

geometrystr

Geometry type. Can be: - ‘groove’: SFD with groove and no end seals - ‘end_seals’: SFD with end seals and no groove - ‘groove-end_seals’: SFD with both groove and end seals Default is ‘groove’.

cavitationboolean

It can be true or false, depending on configuration of the flow type. Default is True.

tagstr, optional

Tag for the element.

scale_factorfloat, optional

Scale factor for the bearing. Default is 1.0.

Attributes:
cxxndarray

Damping coefficient in N*s/m. Shape: (n_freq,).

kxxndarray

Stiffness coefficient in N/m. Shape: (n_freq,).

thetandarray

Pressure angle in radians. Shape: (n_freq,).

p_maxndarray

Maximum pressure in Pa. Shape: (n_freq,).

Returns:
Bearing Elements

Methods

C(frequency)#

Damping matrix for an instance of a bearing element.

This method returns the damping matrix for an instance of a bearing element.

Parameters:
frequencyfloat

The excitation frequency (rad/s).

Returns:
Cnp.ndarray

A 3x3 matrix of floats containing the cxx, cxy, cyx, cyy, and czz values (N*s/m).

Examples

>>> bearing = bearing_example()
>>> bearing.C(0)
array([[200.,   0.,   0.],
       [  0., 150.,   0.],
       [  0.,   0.,  50.]])
G()#

Gyroscopic matrix for an instance of a bearing element.

This method returns the mass matrix for an instance of a bearing element.

Returns:
Gnp.ndarray

A 3x3 matrix of floats.

Examples

>>> bearing = bearing_example()
>>> bearing.G()
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])
K(frequency)#

Stiffness matrix for an instance of a bearing element.

This method returns the stiffness matrix for an instance of a bearing element.

Parameters:
frequencyfloat

The excitation frequency (rad/s).

Returns:
Knp.ndarray

A 3x3 matrix of floats containing the kxx, kxy, kyx, kyy and kzz values (N/m).

Examples

>>> bearing = bearing_example()
>>> bearing.K(0)
array([[1000000.,       0.,       0.],
       [      0.,  800000.,       0.],
       [      0.,       0.,  100000.]])
M(frequency)#

Mass matrix for an instance of a bearing element.

This method returns the mass matrix for an instance of a bearing element.

Parameters:
frequencyfloat

The excitation frequency (rad/s).

Returns:
Mnp.ndarray

Mass matrix (kg).

Examples

>>> bearing = bearing_example()
>>> bearing.M(0)
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])
__init__(n, frequency, axial_length, journal_radius, radial_clearance, eccentricity_ratio, lubricant, geometry='groove', cavitation=True, tag=None, scale_factor=1.0)#
add_tag(index)#

Add a tag to the given element.

calculate_coeficientes_with_groove_and_end_seals(freq)#

Calculate coefficients for an SFD with both a groove and end seals.

Parameters:
freqfloat

Operating frequency in rad/s.

Returns:
cofloat

Damping coefficient.

kofloat

Stiffness coefficient.

thetafloat

Pressure angle in radians.

p_maxfloat

Maximum pressure.

calculate_coeficients_with_end_seals(freq)#

Calculate coefficients for a sealed SFD without a groove.

Parameters:
freqfloat

Operating frequency in rad/s.

Returns:
cofloat

Damping coefficient.

kofloat

Stiffness coefficient.

thetafloat

Pressure angle in radians.

p_maxfloat

Maximum pressure.

calculate_coeficients_with_groove(freq)#

Calculate coefficients for an SFD with a groove and no end seals.

Parameters:
freqfloat

Operating frequency in rad/s.

Returns:
cofloat

Damping coefficient.

kofloat

Stiffness coefficient.

thetafloat

Pressure angle in radians.

p_maxfloat

Maximum pressure.

dof_local_index()#

Get the local index for a element specific degree of freedom.

Returns:
local_index: namedtupple

A named tuple containing the local index.

Examples

>>> # Example using BearingElement
>>> from ross.bearing_seal_element import bearing_example
>>> bearing = bearing_example()
>>> bearing.dof_local_index()
LocalIndex(x_0=0, y_0=1, z_0=2)
dof_mapping()#

Degrees of freedom mapping.

Returns a dictionary with a mapping between degree of freedom and its index.

Returns:
dof_mappingdict

A dictionary containing the degrees of freedom and their indexes.

Examples

The numbering of the degrees of freedom for each node.

Being the following their ordering for a node:

x_0 - horizontal translation y_0 - vertical translation z_0 - axial translation

>>> bearing = bearing_example()
>>> bearing.dof_mapping()
{'x_0': 0, 'y_0': 1, 'z_0': 2}
format_table(frequency=None, coefficients=None, frequency_units='rad/s', stiffness_units='N/m', damping_units='N*s/m', mass_units='kg')#

Return frequency vs coefficients in table format.

Parameters:
frequencyarray, pint.Quantity, optional

Array with frequencies (rad/s). Default is 5 values from min to max frequency.

coefficientslist, str, optional

List or str with the coefficients to include. Defaults is a list of stiffness and damping coefficients.

frequency_unitsstr, optional

Frequency units. Default is rad/s.

stiffness_unitsstr, optional

Stiffness units. Default is N/m.

damping_unitsstr, optional

Damping units. Default is N*s/m.

mass_unitsstr, optional

Mass units. Default is kg.

Returns:
tablePrettyTable object

Table object with bearing coefficients to be printed.

classmethod from_table(n, file, sheet_name=0, tag=None, n_link=None, scale_factor=1, color='#355d7a')#

Instantiate a bearing using inputs from an Excel table.

A header with the names of the columns is required. These names should match the names expected by the routine (usually the names of the parameters, but also similar ones). The program will read every row bellow the header until they end or it reaches a NaN.

Parameters:
nint

The node in which the bearing will be located in the rotor.

filestr

Path to the file containing the bearing parameters.

sheet_nameint or str, optional

Position of the sheet in the file (starting from 0) or its name. If none is passed, it is assumed to be the first sheet in the file.

tagstr, optional

A tag to name the element. Default is None.

n_linkint, optional

Node to which the bearing will connect. If None the bearing is connected to ground. Default is None.

scale_factorfloat, optional

The scale factor is used to scale the bearing drawing. Default is 1.

colorstr, optional

A color to be used when the element is represented. Default is ‘#355d7a’ (Cardinal).

Returns:
bearingrs.BearingElement

A bearing object.

Examples

>>> import os
>>> file_path = os.path.dirname(os.path.realpath(__file__)) + '/tests/data/bearing_seal_si.xls'
>>> BearingElement.from_table(0, file_path, n_link=1)
BearingElement(n=0, n_link=1,
 kxx=[1.379...
classmethod get_base_class()#

Get the direct subclass of Element in the inheritance chain.

Returns the first class in the inheritance hierarchy that directly inherits from Element. This is useful for identifying the base element type when working with subclasses or indirect subclasses.

Returns:
base_classtype

The direct subclass of Element in the inheritance chain.

get_class_name_prefix(index=None)#

Extract prefix of the class name preceding ‘Element’, insert spaces before uppercase letters, and append an index number at the end.

Parameters:
indexint, optional

The index number to append at the end of the resulting string. Default is None.

Returns:
prefixstr

The processed class name prefix.

Examples

>>> # Example using BearingElement
>>> from ross.bearing_seal_element import bearing_example
>>> bearing = bearing_example()
>>> bearing.get_class_name_prefix()
'Bearing'
classmethod get_subclasses()#

Get all subclasses of the Element class.

Returns:
subclasseslist

A list containing all subclasses of the Element class.

classmethod load(file)#

Load an element from a .toml or .json file.

Parameters:
filestr, pathlib.Path

The name of the file the element will be loaded from.

Returns:
The element object.
plot(coefficients=None, frequency_units='rad/s', stiffness_units='N/m', damping_units='N*s/m', mass_units='kg', fig=None, **kwargs)#

Plot coefficient vs frequency.

Parameters:
coefficientslist, str

List or str with the coefficients to plot.

frequency_unitsstr, optional

Frequency units. Default is rad/s.

stiffness_unitsstr, optional

Stiffness units. Default is N/m.

damping_unitsstr, optional

Damping units. Default is N*s/m.

mass_unitsstr, optional

Mass units. Default is kg.

**kwargsoptional

Additional key word arguments can be passed to change the plot layout only (e.g. width=1000, height=800, …). *See Plotly Python Figure Reference for more information.

Returns:
figPlotly graph_objects.Figure()

The figure object with the plot.

classmethod read_toml_data(data)#

Read and parse data stored in a .toml or .json file.

Overrides the base Element method to pass extra saved keys (e.g. pre-computed coefficients) as kwargs to the constructor. This allows subclasses to skip expensive computation when coefficients are already available from a saved file.

Parameters:
datadict

Dictionary obtained from toml.load() or json.load().

Returns:
The element object.
save(file)#

Save the element in a .toml or .json file.

This function will save the element to a .toml or .json file. The file will have all the argument’s names and values that are needed to reinstantiate the element.

Parameters:
filestr, pathlib.Path

The name of the file the element will be saved in. The format is determined by the file extension (.toml or .json).

Examples

>>> # Example using DiskElement
>>> from tempfile import tempdir
>>> from pathlib import Path
>>> from ross.disk_element import disk_example
>>> # create path for a temporary file
>>> file = Path(tempdir) / 'disk.toml'
>>> disk = disk_example()
>>> disk.save(file)
summary()#

Present a summary for the element.

A pandas series with the element properties as variables.

Returns:
A pandas series.

Examples

>>> # Example using DiskElement
>>> from ross.disk_element import disk_example
>>> disk = disk_example()
>>> disk.summary()
n                             0
n_l                           0
n_r                           0...
classmethod table_to_toml(n, file)#

Convert bearing parameters to toml.

Convert a table with parameters of a bearing element to a dictionary ready to save to a toml file that can be later loaded by ross.

Parameters:
nint

The node in which the bearing will be located in the rotor.

filestr

Path to the file containing the bearing parameters.

Returns:
datadict

A dict that is ready to save to toml and readable by ross.

Examples

>>> import os
>>> file_path = os.path.dirname(os.path.realpath(__file__)) + '/tests/data/bearing_seal_si.xls'
>>> BearingElement.table_to_toml(0, file_path)
{'n': 0, 'kxx': array([...