.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples\gallery_examples\04-analyses\run_harmonic_vibe_strain_map_analysis.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_gallery_examples_04-analyses_run_harmonic_vibe_strain_map_analysis.py: .. _ref_sherlock_run_strain_map_analysis: ======================= Run Strain Map Analysis ======================= This example demonstrates how to connect to the Sherlock gRPC service, import a project, add strain maps, and run strain map analysis, including harmonic vibration analysis. Description ----------- Sherlock allows you to perform strain map analysis, which can be applied in various contexts, such as harmonic vibration analysis on PCB strain maps. This script performs the following steps: - Connect to the Sherlock service. - Import a project. - Add a strain map file to the project. - Configure the analysis properties for harmonic vibration. - Execute strain map analysis based on the configured properties. For further details, refer to the official documentation on strain map analysis in Sherlock. .. GENERATED FROM PYTHON SOURCE LINES 42-59 .. code-block:: Python import os from ansys.api.sherlock.v0.SherlockAnalysisService_pb2 import RunStrainMapAnalysisRequest from examples.examples_globals import get_sherlock_tutorial_path from ansys.sherlock.core import launcher from ansys.sherlock.core.errors import ( SherlockAddStrainMapsError, SherlockImportProjectZipArchiveError, SherlockRunStrainMapAnalysisError, SherlockUpdateHarmonicVibePropsError, ) from ansys.sherlock.core.types.analysis_types import ModelSource from ansys.sherlock.core.types.project_types import StrainMapsFileType .. GENERATED FROM PYTHON SOURCE LINES 61-64 Connect to Sherlock =================== Connect to the Sherlock service and ensure proper initialization. .. GENERATED FROM PYTHON SOURCE LINES 64-67 .. code-block:: Python sherlock = launcher.connect(port=9092, timeout=10) .. GENERATED FROM PYTHON SOURCE LINES 68-71 Delete Project ============== Delete the project if it already exists. .. GENERATED FROM PYTHON SOURCE LINES 71-78 .. code-block:: Python try: sherlock.project.delete_project("Test") print("Project deleted successfully.") except Exception: pass .. GENERATED FROM PYTHON SOURCE LINES 79-82 Import Tutorial Project ======================= Import the tutorial project zip archive from the Sherlock tutorial directory. .. GENERATED FROM PYTHON SOURCE LINES 82-93 .. code-block:: Python try: sherlock.project.import_project_zip_archive( project="Test", category="Demos", archive_file=os.path.join(get_sherlock_tutorial_path(), "Tutorial Project.zip"), ) print("Tutorial project imported successfully.") except SherlockImportProjectZipArchiveError as e: print(f"Error importing project zip archive: {e}") .. GENERATED FROM PYTHON SOURCE LINES 94-97 Add Strain Map ============== Add a strain map to the project. .. GENERATED FROM PYTHON SOURCE LINES 97-119 .. code-block:: Python try: strain_map_path = os.path.join(get_sherlock_tutorial_path(), "StrainMaps", "StrainMap.csv") sherlock.project.add_strain_maps( project="Test", strain_maps=[ ( strain_map_path, "This is the strain map file for the project", StrainMapsFileType.CSV, 0, "SolidID", "PCB Strain", "µε", ["Main Board"], ) ], ) print("Strain maps added successfully.") except SherlockAddStrainMapsError as e: print(f"Error adding strain maps: {e}") .. GENERATED FROM PYTHON SOURCE LINES 120-123 Update Harmonic Vibration Properties ==================================== Configure properties for harmonic vibration analysis using strain maps. .. GENERATED FROM PYTHON SOURCE LINES 123-153 .. code-block:: Python try: # Update properties for harmonic vibration analysis sherlock.analysis.update_harmonic_vibe_props( project="Test", harmonic_vibe_properties=[ { "cca_name": "Main Board", "model_source": ModelSource.STRAIN_MAP, "harmonic_vibe_count": 1, "harmonic_vibe_damping": "0.01", "part_validation_enabled": False, "require_material_assignment_enabled": True, "analysis_temp": 20, "analysis_temp_units": "C", "force_model_rebuild": "AUTO", "filter_by_event_frequency": False, "natural_freq_min": 1, "natural_freq_min_units": "Hz", "natural_freq_max": 1000, "natural_freq_max_units": "KHz", "reuse_modal_analysis": True, "strain_map_natural_freq": 500, } ], ) print("Harmonic vibration properties updated successfully.") except SherlockUpdateHarmonicVibePropsError as e: print(f"Error updating harmonic vibe properties: {e}") .. GENERATED FROM PYTHON SOURCE LINES 154-157 Run Strain Map Analysis ======================= Run the strain map analysis, including harmonic vibration and other analysis types. .. GENERATED FROM PYTHON SOURCE LINES 157-175 .. code-block:: Python try: sherlock.analysis.run_strain_map_analysis( project="Test", cca_name="Main Board", strain_map_analyses=[ [ RunStrainMapAnalysisRequest.StrainMapAnalysis.AnalysisType.HarmonicVibe, [ ["On The Road", "5 - Harmonic Vibe", "TOP", "StrainMap - Top"], ["On The Road", "5 - Harmonic Vibe", "BOTTOM", "StrainMap - Bottom"], ], ] ], ) print("Strain map analysis completed successfully.") except SherlockRunStrainMapAnalysisError as e: print(f"Error running strain map analysis: {e}") .. _sphx_glr_download_examples_gallery_examples_04-analyses_run_harmonic_vibe_strain_map_analysis.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: run_harmonic_vibe_strain_map_analysis.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: run_harmonic_vibe_strain_map_analysis.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: run_harmonic_vibe_strain_map_analysis.zip `