def nabla(self, mesh, m, g): if PAR.CREEPING: G, grid = mesh2grid(g, mesh) DG = nabla(G, order=2) dg = grid2mesh(DG, grid, mesh) return -dg/np.mean(m) else: M, grid = mesh2grid(m, mesh) DM = nabla(M, order=2) dm = grid2mesh(DM, grid, mesh) return dm/np.mean(m)
def nabla(self, mesh, m, g): if PAR.CREEPING: G, grid = mesh2grid(g, mesh) DG = nabla(G, order=1) dg = grid2mesh(DG, grid, mesh) return -dg / np.mean(m) else: M, grid = mesh2grid(m, mesh) DM = nabla(M, order=1) dm = grid2mesh(DM, grid, mesh) return dm / np.mean(m)
def write_damping_term(self, parameter): path_coords = PATH.OUTPUT+'/'+'model_init' path_input = PATH.GRAD+'/'+'model' path_output = PATH.MUMFORD_SHAH_OUTPUT path_run = PATH.SUBMIT x = sem.read(path_coords, 'x', 0) z = sem.read(path_coords, 'z', 0) mesh = stack(x,z) m, grid = mesh2grid(sem.read(path_input, parameter, 0), mesh) nu, _ = mesh2grid(sem.read(path_output, parameter+'_nu', 0), mesh) grad_m = grad(m) grad_nu = grad(nu) V = -2.*(grad_m[0]*grad_nu[0] + grad_m[1]*grad_nu[1]) +\ -nu**2 * nabla2(m) v = grid2mesh(V, grid, mesh) sem.write(v, path_output, parameter+'_dm', 0)
from seisflows.seistools import io from seisflows.tools.array import mesh2grid, stack import numpy as np #from seisflows.postprocess.regularize import getmesh x = io.read_fortran('../model_init/proc000000_x.bin') z = io.read_fortran('../model_init/proc000000_z.bin') mesh = stack(x, z) #from seisflows.seistools.io import loadbin vs = io.read_fortran('proc000000_vs.bin') vs, grid = mesh2grid(vs, mesh) print vs.shape dd = vs[:, 328] np.savetxt('extrue.dat', dd, fmt='%7.4f') #ext = vs[] #io.write_fortran(x,'proc000000_x.bin') #io.write_fortran(z,'proc000000_z.bin')
def nabla(self, mesh, m, g): M, grid = mesh2grid(g, mesh) DM = tv(M, epsilon=PAR.EPSILON) dm = grid2mesh(DM, grid, mesh) return dm/np.mean(m)
def nabla(self, mesh, m, g): M, grid = mesh2grid(g, mesh) DM = tv(M, epsilon=PAR.EPSILON) dm = grid2mesh(DM, grid, mesh) return dm / np.mean(m)