# Project with a large 2-D box domain.
d = sn.domain.dim2.BoxDomain(x0=0, x1=1e6, y0=0, y1=1e6)
p = sn.Project.from_domain(
path=PROJECT_DIR,
domain=d,
load_if_exists=True,
)
# One simulation configuration with a Heaviside STF.
p += sn.SimulationConfiguration(
name="heaviside_stf",
tensor_order=1,
elements_per_wavelength=1.25,
min_period_in_seconds=70.0,
model_configuration=sn.ModelConfiguration(
background_model=sn.model.background.homogeneous.IsotropicElastic(
vp=2000, vs=1000.0, rho=1000
)
),
event_configuration=sn.EventConfiguration(
# Heaviside.
wavelet=sn.simple_config.stf.Heaviside(),
waveform_simulation_configuration=sn.WaveformSimulationConfiguration(
end_time_in_seconds=600.0, time_step_in_seconds=2.0
),
),
)
# Another one with a filtered Heaviside STF. Salvus has a convenience
# function for that.
p += sn.SimulationConfiguration(
name="filtered_heaviside_stf",
tensor_order=1,
elements_per_wavelength=1.25,
min_period_in_seconds=70.0,
model_configuration=sn.ModelConfiguration(
background_model=sn.model.background.homogeneous.IsotropicElastic(
vp=2000, vs=1000.0, rho=1000
)
),
event_configuration=sn.EventConfiguration(
# Filtered Heaviside.
wavelet=sn.simple_config.stf.FilteredHeaviside(
min_frequency_in_hertz=min_frequency_in_hertz,
max_frequency_in_hertz=max_frequency_in_hertz,
end_time_in_seconds=600.0,
highpass_corners=highpass_corners,
lowpass_corners=lowpass_corners,
sampling_rate_in_hertz=0.5,
),
waveform_simulation_configuration=sn.WaveformSimulationConfiguration(
end_time_in_seconds=600.0, time_step_in_seconds=2.0
),
),
)
# Single source + receiver.
p += sn.Event(
event_name="event",
sources=[
sn.simple_config.source.cartesian.VectorPoint2D(
x=0.5e6, y=0.5e6, fx=1e6, fy=1e6
)
],
receivers=[
sn.simple_config.receiver.cartesian.Point2D(
x=0.7e6, y=0.7e6, station_code="AA", fields=["displacement"]
)
],
)
# Launch both
for sim in ["heaviside_stf", "filtered_heaviside_stf"]:
p.simulations.launch(
sim,
p.events.list(),
site_name=SALVUS_FLOW_SITE_NAME,
ranks_per_job=2,
)
p.simulations.query(block=True)
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9IAAAAOCAIAAABM5bNAAAAABmJLR0QA/wD/AP+gvaeTAAAAeUlE
QVR4nO3WwQnAIBQFwRiwDPsvzAo8/4NpIg9BZirY47a11pyzqh4AAOBvvfcxRtt7ny4BAIDLvacD
AADgfrYbAADibDcAAMTZbgAAiLPdAAAQZ7sBACDOdgMAQJztBgCAONsNAABxthsAAOJsNwAAxNlu
AACI+wA8CAvrghXIAgAAAABJRU5ErkJggg==
)
[2024-07-05 10:07:10,682] INFO: Creating mesh. Hang on.
[2024-07-05 10:07:10,729] INFO: Submitting job ...
Uploading 1 files...
🚀 Submitted job_2407051007833455_4e1aeb2f0e@local
[2024-07-05 10:07:10,925] INFO: Submitting job ...
Uploading 2 files...
🚀 Submitted job_2407051007927817_047eedac5b@local
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9IAAACQCAIAAABricRzAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE
QVR4nO3deVxV1f7/8XWYhwNHQBNQNAdARRx5kDiLVyw0ohK1LMWu9eiqV6ybQ1jmNbKvWt0kvVna
wzIbHAqHUiMxcsDhJjgRjuAUiAwyw5l/f+xH53cucA4HdDvd1/Mvzt5rr/1Za+/Ho/dZ7rNTGI1G
AQAAAEBOdne7AAAAAODBR+wGAAAAZEfsBgAAAGRH7AYAAABkR+wGAAAAZEfsBgAAAGRH7AYAAABk
R+wGAAAAZEfsBgAAAGRH7AYAAABkR+wGAAAAZEfsBgAAAGRH7AYAAABkR+wGAAAAZEfsBgAAAGRH
7AYAAABkR+wGAAAAZEfsBgAAAGTXROw+ffp0fHz8ww8/7OLi4ubmFhoampSUpFar70xxLVZaWvqX
v/zFzc0tOjr6rhTQtWvX+Pj45h51/PhxhUKxdevWO3Au6x0+99xzLTjq9pYBAADwILEWu0+ePDl4
8OCLFy8uW7Zs//79O3fuHDt27D//+c9nn31WapCSkhIWFmbLaWxveVt88803aWlpa9asWbly5R07
qbm33357ypQpD965zNW7pnerDAAAgPuCg5V9q1at0uv1qamprq6u0pbhw4erVKpvv/32+vXrvr6+
R44csfE0tre8LYqLi4UQzz77rEKhuJPnNXnmmWceyHOZq3dN71YZAAAA9wVrq90ajcbe3r7exvnz
5x8/ftzX13f48OFLly49duyYQqF47733hBBVVVUJCQnt27d3dHT09/efNGnSH3/8IYRo2LJ9+/bT
pk0z9Xn48GGFQrF7924hxPHjx6Ojox966CFXV9fAwMDFixcbDIZGyzMYDMuWLQsODnZ2dvby8ho7
duyJEyeEEIMHD160aJEQws7Obvjw4Q0PLCsrmzRpkkql8vDwiImJycjIUCgUmzZtsl6Y0Wj86KOP
+vbtq1Qq27RpM2XKlMLCQqlZYGDg7NmzX331VXd39w0bNoj/fuLCyoEVFRXPPfecVElsbGx+fr6l
a2FlWszPFRwcnJCQsGTJkocfftjV1XXgwIEXLlz47LPPunXrplQqw8PDjx8/LrW0MlJztl9T8zIs
XRpThcnJyUFBQR4eHt27d9+8eXOTYwQAALjvGS2THjIODw9PSUmprKyst7esrCwqKqp3795FRUU1
NTVGo3Hy5MkqlWrHjh25ubkHDhzo1avXoEGDGm3Zrl27v/71r6auDh06JITYtWuXVqt96KGHHn/8
8czMzIsXL65fv16pVC5durTR8ubPn+/k5LRixYrc3NxDhw4NGDBApVL98ccfZWVlc+bMEUIUFRWV
lZU1PHD8+PHu7u7ffvttXl7e+vXru3fvLoRISUmxUpjRaExKShJCJCUl5eXl/frrryEhIaGhoRqN
xmg09ujRIzQ0NC4ubv/+/YWFhUajsUuXLlOmTJE6sXLgxIkT3d3dN27cmJeX99VXX3Xr1s1UiTnr
02J+rpCQkLZt20rP3+fm5qpUqqCgoMmTJ1dVVZWVlfXq1SsiIkJqaWWkXbp0mTRpkrTd9mtqXoal
SyNV6OfnN2vWrIqKCo1GEx8f7+Licv369WZdegAAgPuOtdhtNBrXrVvn7+8vhHBwcAgPD587d+6x
Y8dMe8eMGdO/f3/TxytXrpw9e9b0MTk5WQhRXl7esKWlzHfx4kUhxBdffGHadeLEidzc3IaFVVdX
u7m5TZ8+3bTl0qVLQoh3333XaDS+9dZblr5RlJWVOTg4/P3vfzdtkWKx9dhdW1urVCrHjx9v2iU9
YvHNN98YjcaQkBCVSlVXV2faa8qgVg6UKpk1a5Zp18KFCxuN3danpV7s7tSpk8FgkD7GxMTY29uX
lpaa+ndycpL22hi7bb+mpjKsX5qQkJCAgACdTiftysjIEEL89NNPtl96AACA+1ETbzKJj4+/cuVK
enr6woULVSrVhx9+2L9//2nTphmNxoaNXV1dP//88379+vn5+bVu3ToxMVEIUVpaavvSe8eOHfv3
75+QkPD666//8ssvGo2mV69enTp1atgyOzu7pqZm8ODB5sf6+/tnZmZaP0VOTo5OpwsPDzdtGTRo
UJOFnTp1qqqqasyYMaYt4eHhKpXqt99+kz7279/f2dm5WQeeOXNGp9OZDyEyMrLRs9s+LUKIHj16
mJ5o9/Ly8vX19fLyMn3UaDQ1NTVNjtekBde0yUsTGhpqenhJqu3mzZvNGiMAAMB9p+n3dtvb2w8b
NuzNN99MTU0tLCx8/vnnP/vss5SUlHrNDAZDZGTkmjVr5s6du2/fvuPHj0trt81ib2+/d+/eOXPm
pKamjhw5snXr1i+//HJlZWXDluXl5UIIlUplvtHT07PRxuakBq1atTJt8fDwaLIw6XTTpk1zMVNR
USE96Cz+jI/NOrCiokII4e7ubmqsVCob7cT2aRFCuLi4WPkohGj0K1OjWnZNm7w0pl/ompfUrDEC
AADcd6y9yaS4uFihUPj4+Ji2tGrVasWKFV9++eWxY8eeeuop88aZmZmnTp1au3btxIkTpS21tbWW
eq73ghHz9VdPT8/ExMTExMSSkpKNGzfOmzevqqpK+p2iOSk3SwnPpKKiwjxPN0qKuVLkldy8ebPJ
wqRU/e6775qvWwvLQdnEyoFXrlwRQlRXV5s2lpWVWerHxmmxnZVLYNKsa2rS4ktz28cIAABw77C4
2n3z5s0OHTpMnz693vasrCwhRLt27aSPpqVT6f+h06ZNG+mjTqf76quvzBuYL7K2atXKPGIeO3ZM
+uPy5cvffPON9LePj8/06dNjY2MbfW4kJCTE3d39wIEDpi15eXn5+fnmT480qlu3bnZ2dqaHQ4QQ
v/zyS5OF9ezZ08PD4+rVq93MGI1G0zxYYuVAqRLpoWrJrl27Gu3E9mmxnaWRmmvWNTVp2aWRY4wA
AAD3Doux28vLKykpadOmTdHR0Rs3bjx48ODPP/+clJQUFxcXGBj4/PPPCyG8vb1zc3OPHDly6dKl
nj17enp6fvzxx1euXDl16lR0dPSIESOEEIcPH66pqTFvKYQIDw9PS0s7f/680Wjcv3+/aUWzsLBw
0qRJ//jHP06ePJmXl7djxw7pkYOG5bm6ur7yyitr1679+OOPL1++fOjQoQkTJvj7+zf5P0r09vYe
O3bsp59+un79+uzs7JUrV37//femvZYKc3Z2njdv3urVqz/88MNz586dPn161qxZvXv3bjIXWjlQ
qmTNmjUbNmzIzs7+5JNPdu7c2Wgntk+L7SyN1FyzrqlJyy6NHGMEAAC4h1j/xeWPP/74+OOPBwQE
ODs7u7q6hoSEzJs3r6SkRNp7+PDhgIAAJyenxMREqXH37t1dXFyCg4PXr19fV1c3YMAAJyentWvX
1muZn58/duxYlUrl4+MjvTlbCPHjjz8ajcZt27ZFRER4eHi4uLgEBgYmJiaavyHEnPRy6MDAQEdH
R29v77i4uIsXL0q7rLzJxGg0FhUVjRs3TqlUKpXKMWPGSGvM0vtDrBRmNBpXrVrVo0cPJycnHx+f
yMjIvXv3SttDQkKefvpp81OYv13EyoHmlYwdO/bw4cNCiO+++65hzVampd6bTMwrmTJlSpcuXUwf
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
SUVORK5CYII=
)
True