Exemplo n.º 1
0
    def save(self, path, model, prefix='reg1_', suffix=''):
        """ writes SPECFEM3D_GLOBE transerverly isotropic model
        """
        unix.mkdir(path)

        for iproc in range(self.mesh_properties.nproc):
            for key in ['vpv', 'vph', 'vsv', 'vsh', 'eta']:
                if key in self.parameters:
                    savebin(model[key][iproc], path, iproc,
                            prefix + key + suffix)
                elif 'kernel' in suffix:
                    pass
                else:
                    src = PATH.OUTPUT + '/' + 'model_init'
                    dst = path
                    copybin(src, dst, iproc, prefix + key + suffix)

            if 'rho' in self.parameters:
                savebin(model['rho'][iproc], path, iproc,
                        prefix + 'rho' + suffix)
            elif 'kernel' in suffix:
                pass
            else:
                src = PATH.OUTPUT + '/' + 'model_init'
                dst = path
                copybin(src, dst, iproc, prefix + 'rho' + suffix)
Exemplo n.º 2
0
    def save(self, path, model, prefix='reg1_', suffix=''):
        """ writes SPECFEM3D_GLOBE transerverly isotropic model
        """
        unix.mkdir(path)

        for iproc in range(self.mesh.nproc):
            for key in ['vpv', 'vph', 'vsv', 'vsh', 'eta']:
                if key in self.parameters:
                    savebin(model[key][iproc], path, iproc, prefix+key+suffix)
                elif 'kernel' in suffix:
                    pass
                else:
                    src = PATH.OUTPUT +'/'+ 'model_init'
                    dst = path
                    copybin(src, dst, iproc, prefix+key+suffix)

            if 'rho' in self.parameters:
                savebin(model['rho'][iproc], path, iproc, prefix+'rho'+suffix)
            elif 'kernel' in suffix:
                pass
            else:
                src = PATH.OUTPUT +'/'+ 'model_init'
                dst = path
                copybin(src, dst, iproc, prefix+'rho'+suffix)
Exemplo n.º 3
0
    def save(self,
             path,
             model,
             prefix='',
             suffix='',
             solver_parameters=['vp', 'vs']):
        """ writes SPECFEM model

            The following method writes acoustic and elastic models. For an
            example of how to write transversely isotropic models, see 
            solver.specfem3d_globe.

            There is a tradeoff here between being simple and being 
            flexible.  In this case we opt for a simple hardwired approach. For
            a more flexible, more complex approach see SEISFLOWS-RESEARCH.
        """
        unix.mkdir(path)

        if 'kernel' in suffix:
            for iproc in range(self.mesh.nproc):
                for key in solver_parameters:
                    if key in self.parameters:
                        savebin(model[key][iproc], path, iproc,
                                prefix + key + suffix)
                if 'rho' in self.parameters:
                    savebin(model['rho'][iproc], path, iproc,
                            prefix + 'rho' + suffix)

        else:
            for iproc in range(self.mesh.nproc):
                for key in solver_parameters:
                    if key in self.parameters:
                        savebin(model[key][iproc], path, iproc,
                                prefix + key + suffix)
                    else:
                        src = PATH.OUTPUT + '/' + 'model_init'
                        dst = path
                        copybin(src, dst, iproc, prefix + key + suffix)

                if 'rho' in self.parameters:
                    savebin(model['rho'][iproc], path, iproc,
                            prefix + 'rho' + suffix)
                else:
                    src = PATH.OUTPUT + '/' + 'model_init'
                    dst = path
                    copybin(src, dst, iproc, 'rho')
Exemplo n.º 4
0
    def save(self, path, model, prefix='', suffix='', solver_parameters=['vp', 'vs']):
        """ writes SPECFEM model

            The following method writes acoustic and elastic models. For an
            example of how to write transversely isotropic models, see 
            solver.specfem3d_globe.

            There is a tradeoff here between being simple and being 
            flexible.  In this case we opt for a simple hardwired approach. For
            a more flexible, more complex approach see SEISFLOWS-RESEARCH.
        """
        unix.mkdir(path)

        if 'kernel' in suffix:
            for iproc in range(self.mesh.nproc):
                for key in solver_parameters:
                    if key in self.parameters:
                        savebin(model[key][iproc], path, iproc, prefix+key+suffix)
                if 'rho' in self.parameters:
                    savebin(model['rho'][iproc], path, iproc, prefix+'rho'+suffix)

        else:
            for iproc in range(self.mesh.nproc):
                for key in solver_parameters:
                    if key in self.parameters:
                        savebin(model[key][iproc], path, iproc, prefix+key+suffix)
                    else:
                        src = PATH.OUTPUT +'/'+ 'model_init'
                        dst = path
                        copybin(src, dst, iproc, prefix+key+suffix)

                if 'rho' in self.parameters:
                    savebin(model['rho'][iproc], path, iproc, prefix+'rho'+suffix)
                else:
                    src = PATH.OUTPUT +'/'+ 'model_init'
                    dst = path
                    copybin(src, dst, iproc, 'rho')