|
14 | 14 | if devito_message is None: |
15 | 15 | from examples.seismic import AcquisitionGeometry, Model |
16 | 16 | from examples.seismic.acoustic import AcousticWaveSolver |
17 | | - from examples.seismic.utils import PointSource |
18 | | - |
19 | | - |
20 | | -class _CustomSource(PointSource): |
21 | | - """Custom source |
22 | | -
|
23 | | - This class creates a Devito symbolic object that encapsulates a set of |
24 | | - sources with a user defined source signal wavelet ``wav`` |
25 | | -
|
26 | | - Parameters |
27 | | - ---------- |
28 | | - name : :obj:`str` |
29 | | - Name for the resulting symbol. |
30 | | - grid : :obj:`devito.types.grid.Grid` |
31 | | - The computational domain. |
32 | | - time_range : :obj:`examples.seismic.source.TimeAxis` |
33 | | - TimeAxis(start, step, num) object. |
34 | | - wav : :obj:`numpy.ndarray` |
35 | | - Wavelet of size |
36 | | -
|
37 | | - """ |
38 | | - |
39 | | - __rkwargs__ = PointSource.__rkwargs__ + ["wav"] |
40 | | - |
41 | | - @classmethod |
42 | | - def __args_setup__(cls, *args, **kwargs): |
43 | | - kwargs.setdefault("npoint", 1) |
44 | | - |
45 | | - return super().__args_setup__(*args, **kwargs) |
46 | | - |
47 | | - def __init_finalize__(self, *args, **kwargs): |
48 | | - super().__init_finalize__(*args, **kwargs) |
49 | | - |
50 | | - self.wav = kwargs.get("wav") |
51 | | - |
52 | | - if not self.alias: |
53 | | - for p in range(kwargs["npoint"]): |
54 | | - self.data[:, p] = self.wavelet |
55 | | - |
56 | | - @property |
57 | | - def wavelet(self): |
58 | | - """Return user-provided wavelet""" |
59 | | - return self.wav |
| 17 | + from examples.seismic.utils import _CustomSource |
60 | 18 |
|
61 | 19 |
|
62 | 20 | class AcousticWave2D(LinearOperator): |
|
0 commit comments