Overview#

What is msolve?#

msolve enhances your modeling skills by converting MotionSolve into an easily accessible Python package. With its object-oriented design, the package leverages Python classes, methods, and utilities, enabling seamless communication with the solver. This streamlined interaction facilitates object-oriented modeling, simulation execution, and advanced result post-processing.

What are the advantages of msolve?#

MotionSolve offers various choices for creating, simulating, and post-processing multibody systems. Nevertheless, using the msolve package offers several significant advantages.

  • Seamless Scripting and Reusability: Rather than traditional input files, msolve operates on a set of Python commands. These commands are available in the form of scripts, Python functions, or classes, all ready to be reused, shared, and modularly organized.

  • Empowerment Through Python Extensibility: Your modeling capabilities expand significantly with the extensive range of libraries available to Python, including numpy and scipy. These libraries can be seamlessly integrated with MotionSolve’s features, enabling you to create tailored solutions that match the specific requirements of your project.

  • Effortless ID Management: Enter the realm of worry-free modeling with the aid of automated ID management. Through msolve, you can effortlessly cross-reference objects, providing a more intuitive approach to scripting models.

  • Manage User-Subroutines: User subroutines may be written in any combination of MotionSolve supported languages. However, when the user-subroutine is written in Python, it provides for a very elegant way to resolve path and function name issues. Specifically, your user-subroutines can be defined as Python-callable functions as well as class methods.

  • Create Designable Models: The framework makes it easy to create designable models by defining entities based on design variables. MotionSolve understands the parametric connections within these entities, enabling it to compute the sensitivity of system responses in relation to the design variables. This capability facilitates the execution of Design Sensitivity Analysis and Optimization.

  • Create Higher-Level Modeling Entities: msolve allows you to create higher-level modeling entities and use these just like any other msolve class. Higher-level modeling entities can be defined as an aggregate of lower-level modeling entities and reused and shared with your organization.

  • Introspect Your Model: The API conducts thorough assessments on the model to guarantee its integrity before authorizing any analysis. Inaccurate or unauthorized models are promptly flagged, enabling you to quickly identify the source of errors and rectify them. The notifications generated are consistently linked to the entities you’ve personally generated. This becomes particularly crucial when dealing with the creation and utilization of more intricate, higher-level modeling components.

  • Create msolve Models Using Pre-Processors Both Altair MotionView and Altair Inspire have the capability to export MotionSolve models in the msolve format. These exported models can be modified and seamlessly integrated into your workflow, allowing for enhanced customization and integration.

  • Code-Generated Documentation: This documentation is automatically generated from source code, providing comprehensive, accurate, up-to-date, and consistent information about classes, methods, and functionalities that are available in the package. The close tie to the code reduces the risk of inconsistencies between code and documentation.

Who will use msolve?#

The Python interface will be used by three groups of users.

  • Advanced users: Customize MotionSolve to address your specific needs. You can create new modeling elements, develop specific workflows and analyses, calculate custom results, and perform complex post-processing operations.

  • Application developers: Use msolve to create application specific higher-level modeling entities that know about the physics of their behavior. These entities can be shared with end-users that lack the ability to model complex systems from scratch.

  • User interface developers: Use the Python interface to create an interactive user environment for multibody simulation. The solver can be directly integrated into the model-building phase.

Conclusion#

The integration of MotionSolve into Python presents a transformative evolution for multibody simulation. This synthesis not only elevates MotionSolve’s capabilities but also empowers you to craft tailored simulations to your precise specifications, providing an avenue for exceptional customization.