ANSYSsimulation20 / utils /ansys_utils.py
karthikmn's picture
Create ansys_utils.py
090629b verified
# ansys_utils.py
import subprocess
import os
def run_simulation(step_file_path):
"""
Run ANSYS simulation using the generated STEP file.
This function assumes you have ANSYS installed and accessible via command line.
The process involves:
1. Running ANSYS APDL commands (which should be in a file or string).
2. Running simulations.
3. Retrieving results.
"""
# Here we assume an ANSYS APDL script will be created dynamically
apdl_script = f"""
/PREP7
! Load the STEP file into ANSYS
/FREAD, {step_file_path}, STEP
/SOLU
! Apply boundary conditions, loads, etc.
SOLVE
/POST1
! Get results like displacement, stress, etc.
"""
# Save the APDL script to a file
apdl_file = "/tmp/ansys_script.inp"
with open(apdl_file, "w") as f:
f.write(apdl_script)
# Run ANSYS with the APDL script
try:
# Replace this command with the actual command for your ANSYS installation
result = subprocess.run(["ansys", "-b", "-i", apdl_file, "-o", "/tmp/ansys_output.txt"],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if result.returncode != 0:
raise Exception(f"Error running ANSYS: {result.stderr.decode()}")
# Retrieve and return results from the output file (for example, displacement or stress)
with open("/tmp/ansys_output.txt", "r") as f:
simulation_results = f.read()
return simulation_results
except Exception as e:
raise Exception(f"Error executing ANSYS simulation: {str(e)}")