forked from simpeg/simpeg
/
plot_mesh2mesh.py
40 lines (32 loc) · 927 Bytes
/
plot_mesh2mesh.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
"""
Maps: Mesh2Mesh
===============
This mapping allows you to go from one mesh to another.
"""
from SimPEG import Mesh, Maps, Utils
import matplotlib.pyplot as plt
def run(plotIt=True):
M = Mesh.TensorMesh([100, 100])
h1 = Utils.meshTensor([(6, 7, -1.5), (6, 10), (6, 7, 1.5)])
h1 = h1/h1.sum()
M2 = Mesh.TensorMesh([h1, h1])
V = Utils.ModelBuilder.randomModel(M.vnC, seed=79, its=50)
v = Utils.mkvc(V)
modh = Maps.Mesh2Mesh([M, M2])
modH = Maps.Mesh2Mesh([M2, M])
H = modH * v
h = modh * H
if not plotIt:
return
ax = plt.subplot(131)
M.plotImage(v, ax=ax)
ax.set_title('Fine Mesh (Original)')
ax = plt.subplot(132)
M2.plotImage(H, clim=[0, 1], ax=ax)
ax.set_title('Course Mesh')
ax = plt.subplot(133)
M.plotImage(h, clim=[0, 1], ax=ax)
ax.set_title('Fine Mesh (Interpolated)')
if __name__ == '__main__':
run()
plt.show()