Examples
Code examples for common sim2l tasks.
Basic Simulation
import sim2l
sim = sim2l.load("thermal_sim")
result = sim.run(temperature=350, pressure=101325)
print(result.outputs)
With Run Database
from sim2l import configure, load
from sim2l.database import RunDatabase
configure(use_run_database=True)
sim = load("thermal_sim")
result = sim.run(temperature=350)
run_db = RunDatabase(result.execution_id)
summary = run_db.get_summary()
print(f"Duration: {summary['duration_seconds']}s")
With Caching
from sim2l import configure, load
from sim2l.database import get_session_manager
session = get_session_manager().create_anonymous_session()
configure(
use_run_database=True,
cache_service_url="http://localhost:8001",
cache_session_id=session.session_id
)
sim = load("thermal_sim")
# First run - cache miss
result1 = sim.run(temperature=350)
# Second run - cache hit
result2 = sim.run(temperature=350)
File Export
from sim2l import configure, load
from sim2l.database import FileManager
configure(use_run_database=True)
sim = load("thermal_sim")
result = sim.run(temperature=350)
fm = FileManager()
files = fm.get_run_files(result.execution_id)
for file in files:
fm.export_run_file(result.execution_id, file['name'], f"/tmp/{file['name']}")
Result Search
from sim2l import configure, load
from sim2l.database import ResultsClient, get_session_manager
session = get_session_manager().create_anonymous_session()
client = ResultsClient("http://localhost:8003", session_id=session.session_id)
# Run simulations
configure(use_run_database=True)
sim = load("thermal_sim")
for temp in [300, 325, 350, 375, 400]:
result = sim.run(temperature=temp)
client.register_result(result.execution_id)
# Search
results = client.search(
simulation_name="thermal_sim",
input_filters={'temperature': 350}
)
# Statistics
stats = client.get_parameter_stats("thermal_sim", "max_stress")
print(f"Average: {stats['avg_value']}")
Complete Example
from sim2l import configure, load
from sim2l.database import (
get_session_manager,
RunDatabase,
CacheClient,
ResultsClient,
FileManager
)
# Setup
session = get_session_manager().create_anonymous_session()
configure(
use_run_database=True,
cache_service_url="http://localhost:8001",
cache_session_id=session.session_id
)
# Run simulation
sim = load("thermal_sim")
result = sim.run(temperature=350)
# Access run database
run_db = RunDatabase(result.execution_id)
print(run_db.get_summary())
# Register result
results_client = ResultsClient("http://localhost:8003", session_id=session.session_id)
results_client.register_result(result.execution_id)
# Export files
fm = FileManager()
files = fm.get_run_files(result.execution_id)
for file in files:
fm.export_run_file(result.execution_id, file['name'], f"/data/{file['name']}")
More Examples
See the examples/ directory in the repository:
file_manager_usage.py- FileManager examplesresults_service_usage.py- Results Service examplesAdditional workflow examples