Assembly of Plate and Panel Models (compmech.panel.assembly
)¶
-
class
compmech.panel.assembly.
PanelAssembly
(panels)[source]¶ Class for Panel Assemblies
This class has some useful methods that will help plotting output for different panel groups within the assembly and so forth.
For more details about the theory involved, see [castro2017AssemblyModels].
Parameters: panels : iterable
A list, tuple etc of
Panel
objects.Methods
calc_k0
(conn[, c, silent, finalize])Calculate the constitutive stiffness matrix of the assembly calc_kG0
([c, silent, finalize])Calculate the geometric stiffness matrix of the assembly calc_kM
([silent, finalize])get_size
()plot
(c, group[, invert_y, vec, filename, ...])Contour plot for a Ritz constants vector. uvw
(c, group[, gridx, gridy])Calculates the displacement field -
calc_k0
(conn, c=None, silent=False, finalize=True)[source]¶ Calculate the constitutive stiffness matrix of the assembly
Parameters: conn : dict
A connectivity dictionary.
c : array-like or None, optional
This must be the result of a static analysis, used to compute non-linear terms based on the actual displacement field.
silent : bool, optional
A boolean to tell whether the log messages should be printed.
finalize : bool, optional
Asserts validity of output data and makes the output matrix symmetric, should be
False
when assemblying.
-
calc_kG0
(c=None, silent=False, finalize=True)[source]¶ Calculate the geometric stiffness matrix of the assembly
Parameters: c : array-like or None, optional
This must be the result of a static analysis, used to compute non-linear terms based on the actual displacement field.
silent : bool, optional
A boolean to tell whether the log messages should be printed.
finalize : bool, optional
Asserts validity of output data and makes the output matrix symmetric, should be
False
when assemblying.
-
plot
(c, group, invert_y=False, vec='w', filename='', ax=None, figsize=(3.5, 2.0), save=True, title='', identify=False, show_boundaries=False, boundary_line='--k', boundary_linewidth=1.0, colorbar=False, cbar_nticks=2, cbar_format=None, cbar_title='', cbar_fontsize=10, aspect='equal', clean=True, dpi=400, texts=[], xs=None, ys=None, gridx=50, gridy=50, num_levels=400, vecmin=None, vecmax=None, calc_data_only=False)[source]¶ Contour plot for a Ritz constants vector.
Parameters: c : np.ndarray
The Ritz constants that will be used to compute the field contour.
group : str
A group to plot. Each panel in
panels
should contain an attributegroup
, which is used to identify which entities should be plotted together.vec : str, optional
Can be one of the components:
- Displacement:
'u'
,'v'
,'w'
,'phix'
,'phiy'
- Strain:
'exx'
,'eyy'
,'gxy'
,'kxx'
,'kyy'
,'kxy'
,'gyz'
,'gxz'
- Stress:
'Nxx'
,'Nyy'
,'Nxy'
,'Mxx'
,'Myy'
,'Mxy'
,'Qy'
,'Qx'
invert_y : bool, optional
Inverts the
axis of the plot.
save : bool, optional
Flag telling whether the contour should be saved to an image file.
dpi : int, optional
Resolution of the saved file in dots per inch.
filename : str, optional
The file name for the generated image file. If no value is given, the
parameter of the
Panel
object will be used.ax : AxesSubplot, optional
When
ax
is given, the contour plot will be created inside it.figsize : tuple, optional
The figure size given by
(width, height)
.title : str, optional
If any string is given a title is added to the contour plot.
indentify : bool, optional
If domains should be identified. If yes, the name of each panel is used.
show_boundaries : bool, optional
If boundaries between domains should be drawn.
boundary_line : str, optional
Matplotlib string to define line type and color.
boundary_linewidth : float, optional
Matplotlib float to define line width.
colorbar : bool, optional
If a colorbar should be added to the contour plot.
cbar_nticks : int, optional
Number of ticks added to the colorbar.
cbar_format : [ None | format string | Formatter object ], optional
See the
matplotlib.pyplot.colorbar
documentation.cbar_fontsize : int, optional
Fontsize of the colorbar labels.
cbar_title : str, optional
Colorbar title. If
cbar_title == ''
no title is added.aspect : str, optional
String that will be passed to the
AxesSubplot.set_aspect()
method.clean : bool, optional
Clean axes ticks, grids, spines etc.
xs : np.ndarray, optional
The
positions where to calculate the displacement field. Default is
None
and the method_default_field
is used.ys : np.ndarray, optional
The
y
positions where to calculate the displacement field. Default isNone
and the method_default_field
is used.gridx : int, optional
Number of points along the
axis where to calculate the displacement field.
gridy : int, optional
Number of points along the
where to calculate the displacement field.
num_levels : int, optional
Number of contour levels (higher values make the contour smoother).
vecmin : float, optional
Minimum value for the contour scale (useful to compare with other results). If not specified it will be taken from the calculated field.
vecmax : float, optional
Maximum value for the contour scale.
calc_data_only : bool, optional
If only calculated data should be returned.
Returns: ax : matplotlib.axes.Axes
The Matplotlib object that can be used to modify the current plot if needed.
data : dict
Data calculated during the plotting procedure.
- Displacement:
-
uvw
(c, group, gridx=50, gridy=50)[source]¶ Calculates the displacement field
For a given full set of Ritz constants
c
, the displacement field is calculated and stored in the parametersu
,v
,w
,phix
,phiy
of thePanel
object.Parameters: c : float
The full set of Ritz constants
group : str
A group to plot. Each panel in
panels
should contain an attributegroup
, which is used to identify which entities should be plotted together.gridx : int, optional
Number of points along the
axis where to calculate the displacement field.
gridy : int, optional
Number of points along the
where to calculate the displacement field.
Returns: out : tuple
A tuple of
np.ndarrays
containing(xs, ys, u, v, w, phix, phiy)
.Notes
The returned values
u`
,v
,w
,phix
,phiy
are stored as parameters with the same name in thePanel
object.
-