# 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-02 14:08:18,479] INFO: Creating mesh. Hang on.
[2024-07-02 14:08:18,557] INFO: Submitting job ...
Uploading 1 files...
🚀 Submitted job_2407021408747056_607fcdb57b@local
[2024-07-02 14:08:18,898] INFO: Submitting job ...
Uploading 2 files...
🚀 Submitted job_2407021408903116_dc3afe421c@local
![](data:image/png;base64,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
AAAgu/8HQlohcOr3DEEAAAAASUVORK5CYII=
)
True