Skip to content

Spherical Harmonics project is dedicated to the study of special functions defined on the surface of a sphere. This tool facilitates visualization of mode shapes and enables the analysis of pulse and harmonic responses on the sphere's surface to external loads. Developed using C++17/ modern OpenGL

License

Notifications You must be signed in to change notification settings

Samson-Mano/Spherical_harmonics

Repository files navigation

Spherical Harmonics

Overview

The Spherical Harmonics project is designed to study the mode shapes and behavior of 3D spherical shells using the Legendre Polynomial Mode Shape Method. This project uses modern OpenGL (GLSL) to render the sphere and visualize various spherical harmonic mode shapes in real time, allowing users to explore the behavior of spherical shells with ease.

Key Features

  • Solve Spherical Harmonics: Compute spherical harmonic modes for thin 3D shells.
  • Mode Shape Visualization: Visualize the mode shapes in a 3D interactive interface.
  • Pulse Loading Response (WIP): Analyze the 3D shell's response to pulse loading (currently in progress).
  • Efficient Rendering: The project uses OpenGL for fast and efficient rendering of spherical modes.

User Interface (UI) Controls

The user interface offers various control options for easy interaction:

  • Pan: Hold Ctrl and right-click drag to pan.
  • Rotate: Hold Ctrl and left-click drag to rotate.
  • Zoom In/Out: Hold Ctrl and scroll the mouse wheel to zoom.
  • Zoom Fit: Press Ctrl + F to fit the view to the screen.
  • Selection: Hold Shift and left drag to select objects.
  • Deselection: Hold Shift and right drag to deselect objects.

These controls allow smooth interaction with the 3D visualizations.


Visualizing Mode Shape Results

The following are some mode shape visualizations generated by the project:

Mode Number Visualization
Mode 6 Mode 6
Mode 9 Mode 9
Mode 11 Mode 11
Mode 12 Mode 12
Mode 41 Mode 41
Mode 70 Mode 70

How to Use the Project

Prerequisites

Ensure you have the following libraries installed:

  • OpenGL
  • GLEW
  • GLFW (or another windowing library)
  • ImGui (for the graphical user interface)

Setup Instructions

  1. Download the Portable Version:
    Go to the Releases page to download the portable version of the project.

  2. Clone or Download the Repository:
    To clone the repository, use the following command:

    git clone https://github.com/Samson-Mano/Spherical_harmonics.git
    

Alternatively, download the repository as a zip file.

  1. Open the Project in Your IDE: Open the solution file in your preferred C++ IDE (e.g., Visual Studio, CLion).

  2. Include Necessary Libraries: Ensure the following libraries are correctly linked in your project environment: OpenGL (with GLEW/GLFW) ImGui

  3. Build and Run the Project: After setting up the libraries and environment, build the project to generate the executable. Once built, you can run the application to explore the spherical harmonic mode shapes.

Contributions

This project is open for contributions, and there are several areas where improvements can be made:

  • Transparency Issue: The current transparency routine for the contour plots is not functioning properly, resulting in fully opaque visualizations. Contributions are welcome to improve this feature.
  • Pulse Loading Analysis: The feature to evaluate the response of the spherical shell to pulse loading is a work in progress.

How to Contribute:

  • Fork the repository and submit a pull request.
  • Open an issue to report bugs or suggest features.

License

This project is licensed under the MIT License. See the LICENSE file for more details.


Acknowledgments

Thank you for using the Spherical Harmonics project! Hope this tool helps you explore and understand spherical harmonic mode shapes and their applications.

Screenshots

Mode 1,4,6

Mode 9,10,11,12

Mode 16,18,19,20,21

Mode 25,26,27,28,29,30

Mode 204,205,206

About

Spherical Harmonics project is dedicated to the study of special functions defined on the surface of a sphere. This tool facilitates visualization of mode shapes and enables the analysis of pulse and harmonic responses on the sphere's surface to external loads. Developed using C++17/ modern OpenGL

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published