
- SERIAL BOX SHOT 3D 3.6 SERIAL NUMBER GENERATOR
- SERIAL BOX SHOT 3D 3.6 SERIAL NUMBER SERIAL
- SERIAL BOX SHOT 3D 3.6 SERIAL NUMBER CODE
- SERIAL BOX SHOT 3D 3.6 SERIAL NUMBER LICENSE
SERIAL BOX SHOT 3D 3.6 SERIAL NUMBER GENERATOR
SeismicMesh's mesh generator is sensitive to poor geometry definitions and thus you should probably check it prior to complex expensive meshing. Points, cells = sliver_removal( points = points, domain = cuboid, edge_length = 0.10, preserve = True) Points, cells = generate_mesh( domain = cuboid, edge_length = 0.10, max_iter = 200) # Geometric primitives can be translated (while being rotated and stretched) import meshio from SeismicMesh import * cuboid = Cube( # Write to gmsh22 format with boundary conditions for the walls and disk/circle. ] # y=0.0 or y=1.0 cells_prune = cellsĬircle = sm. # We use the midpoint of the edge to determine its boundary label mdpt = points. # This gets the edges of the mesh in a winding order (clockwise or counterclockwise). Import numpy as np import meshio import SeismicMesh as sm bbox = ( 0.0, 10.0, 0.0, 1.0)
SERIAL BOX SHOT 3D 3.6 SERIAL NUMBER SERIAL
The user can still specify their own signed distance functions and sizing functions to generate_mesh (in serial or parallel) just like the original DistMesh algorithm but now with quality bounds in 3D. # NOTE: SeismicMesh outputs assumes the domain is (z,x,y) so for visualization # in ParaView, we swap the axes so it appears as in the (x,y,z) plane. # Meshes can be written quickly to disk using meshio and visualized with ParaView:: if comm. Points = points, bbox = bbox, domain = cube, edge_length = ef, preserve = True # For 3D mesh generation, we provide an implementation to bound the minimum dihedral angle:: # We use the preserve kwarg to ensure the level-set is very accurately preserved. Points, cells = generate_mesh( domain = cube, edge_length = ef, max_iter = 75) # More details can be found here: ef = get_sizing_function_from_segy(Īxes_order =( 2, 0, 1), # order for EAGE (x, y, z) to default order (z,x,y) axes_order_sort = "F", # binary is packed in a FORTRAN-style # A graded sizing function is created from the velocity model along with a signed distance function by passing # the velocity grid that we created above. extract( path = path)įname = path + # Dimensions of model (number of grid points in z, x, and y) nx, ny, nz = 676, 676, 210 cube = Cube( bbox) # Extract binary file from SALTF.ZIP zipfile. path = "Salt_Model_3D/3-D_Salt_Model/VEL_GRIDS/" if comm. hmin = 150.0 # This file is in a big Endian binary format, so we must tell the program the shape of the velocity model. WARNING: Computationaly demanding! Running this example takes around 3 minutes in serial and requiresĪround 2 GB of RAM due to the 3D nature of the problem and the domainįrom mpi4py import MPI import zipfile import meshio from SeismicMesh import (Ĭomm = MPI. Seismic velocity model from (WARNING: File is ~500 MB) here
SERIAL BOX SHOT 3D 3.6 SERIAL NUMBER CODE
WARNING: To run the code snippet below you must download (and uncompress) the 3D EAGE

# Write the mesh in a vtk format for visualization in ParaView # NOTE: SeismicMesh outputs assumes the domain is (z,x) so for visualization # in ParaView, we swap the axes so it appears as in the (x,z) plane. Points, cells = generate_mesh( domain = rectangle, edge_length = ef) # Construct mesh sizing object from velocity model ef = get_sizing_function_from_segy(

# Desired minimum mesh size in domain hmin = 75.0 rectangle = Rectangle( bbox) """ # Name of SEG-Y file containg velocity model. COMM_WORLD """ Build a mesh of the BP2004 benchmark velocity model in serial or parallel Takes roughly 1 minute with 2 processors and less than 1 GB of RAM. Table of contentsįor installation, SeismicMesh needs CGAL:įrom mpi4py import MPI import meshio from SeismicMesh import get_sizing_function_from_segy, generate_mesh, Rectangle comm = MPI.
SERIAL BOX SHOT 3D 3.6 SERIAL NUMBER LICENSE
SeismicMesh is distributed under the GP元 license and more details can be found in our short paper. SeismicMesh can also produce mesh-density functions from seismological data to be used in the mesh generator. For increased efficiency, the core package is written in C++, works in parallel, and uses the Computational Geometry Algorithms Library.

As an implementation of DistMesh, it produces high-geometric quality meshes at the expense of speed. SeismicMesh is a Python package for simplex mesh generation in two or three dimensions. SeismicMesh: Triangular Mesh generation in Python

Create high-quality, simulation-ready 2D/3D meshes.
