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)
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)