Software framework and limitations
Before using OpenSG, it is helpful to understand the software framework. OpenSG is a Python package, which contains several subpackages, listed below: Each subpackage contains modules that contain classes, methods, and functions. The classes used to generate blade mesh models and run structural analysis are described in more detail below, followed by a list of software limitations.
See API documentation for more information on the code structure.
OpenSG Subpackages:
core
Contains classes and methods for core computational functions including ABD matrix computation, beam model implementations, and stress recovery.
mesh
Contains classes and methods to define blade mesh models, segment meshes, and mesh data structures for both shell and solid element analyses.
io
Contains classes and methods for input/output operations including YAML file handling, mesh file generation, and data serialization.
utils
Contains utility functions for mathematical operations, finite element computations, eigenvalue solving, and mesh utilities for both shell and solid analyses.
Blade mesh model
The mesh
subpackage contains classes to define blade mesh models, segment meshes, and their data structures.
These classes are listed below:
Blade mesh models can be built from YAML files or generated programmatically.
The package supports both shell and solid element analyses for wind turbine blade structural analysis.
Mesh Classes:
ShellSegmentMesh
Class to define individual shell-based blade segments for efficient segment-by-segment analysis without requiring the full blade mesh.
SolidSegmentMesh
Class to define individual solid-based blade segments for 3D structural analysis of blade segments.
Core computational modules
The core
subpackage contains classes and functions for the core structural analysis computations.
These are listed below:
Core Analysis Classes and Functions:
compute_ABD_matrix()
Function to compute ABD matrices for composite laminates. Relates forces/moments to strains/curvatures in shell structures.
compute_timo_boun()
Function to compute boundary stiffness matrices for Euler-Bernoulli and Timoshenko beam theories on shell boundaries.
compute_stiffness()
Function to compute segment stiffness matrices using shell element formulations.
compute_timo_boun()
Function to compute boundary stiffness matrices for solid element analyses.
compute_stiffness()
Function to compute segment stiffness matrices using solid element formulations.
stress_recov
Module containing functions for stress recovery and post-processing, including local strain computation and stress analysis.
Utility functions
The utils
subpackage contains utility functions that support the core analysis capabilities.
These are organized by analysis type and listed below:
Utility Modules:
shared
Contains shared utility functions including nullspace computation, linear system solvers, and constraint handling used across both shell and solid analyses.
shell
Contains shell-specific utilities including local frame computations, strain measures, boundary condition handling, and shell element operations.
solid
Contains solid-specific utilities including 3D strain measures, stress computations, boundary markers, and solid element operations.
eigenvalue_solver
Contains eigenvalue solver utilities for advanced analysis including buckling and modal analysis capabilities.
Limitations
Current OpenSG limitations include:
TODO
Future work
TODO