2D meshing: xy cross-section

2D meshing: xy cross-section#

You can supply the argument type="xy" and a z-value, to mesh arbitrary Component planar cross-sections.

import gdsfactory as gf
import meshio
from gdsfactory.generic_tech import get_generic_pdk
from gdsfactory.pdk import get_layer_stack
from gdsfactory.technology import LayerStack
from skfem.io import from_meshio

from gplugins.gmsh.get_mesh import create_physical_mesh, get_mesh

gf.config.rich_output()
PDK = get_generic_pdk()
PDK.activate()

waveguide = gf.components.straight_pin(length=10, taper=None)
waveguide.plot()

../_images/ebda2ab31e40ae9400c2016e822d4baf884639c2a5ecfba581829151d102963b.png
filtered_layer_stack = LayerStack(
    layers={
        k: get_layer_stack().layers[k]
        for k in (
            "slab90",
            "core",
            "via_contact",
        )
    }
)
filename = "mesh"


def mesh_with_physicals(mesh, filename):
    mesh_from_file = meshio.read(f"{filename}.msh")
    return create_physical_mesh(mesh_from_file, "triangle")

At z=0.09 um, according to the layer stack above we should see polygons from all three layers:

filename = "mesh"
mesh = get_mesh(
    component=waveguide,
    type="xy",
    z=0.09,
    layer_stack=filtered_layer_stack,
    filename=f"{filename}.msh",
)
mesh = mesh_with_physicals(mesh, filename)
mesh = from_meshio(mesh)
mesh.draw().plot()
Info    : [  0%] Union                                                                                  
Info    : [ 10%] Union - Performing intersection of shapes                                                                                
Info    : [ 80%] Union - Building splits of containers                                                                                
                                                                                
Info    : [  0%] Difference                                                                                  
Info    : [ 10%] Difference                                                                                  
Info    : [ 20%] Difference                                                                                  
Info    : [ 30%] Difference                                                                                  
Info    : [ 40%] Difference                                                                                  
Info    : [ 50%] Difference                                                                                  
Info    : [ 60%] Difference                                                                                  
Info    : [ 70%] Difference - Filling splits of edges                                                                                
Info    : [ 80%] Difference - Making faces                                                                                
Info    : [ 90%] Difference - Adding holes                                                                                
                                                                                
Info    : [  0%] Fragments                                                                                  
Info    : [ 10%] Fragments                                                                                  
Info    : [ 20%] Fragments                                                                                  
Info    : [ 30%] Fragments                                                                                  
Info    : [ 40%] Fragments                                                                                  
Info    : [ 50%] Fragments                                                                                  
Info    : [ 60%] Fragments                                                                                  
Info    : [ 70%] Fragments - Building splits of containers                                                                                
Info    : [ 80%] Fragments - Splitting faces                                                                                
Info    : [  0%] Difference                                                                                  
Info    : [ 10%] Difference                                                                                  
Info    : [ 20%] Difference                                                                                  
Info    : [ 30%] Difference                                                                                  
Info    : [ 40%] Difference                                                                                  
Info    : [ 50%] Difference                                                                                  
Info    : [ 60%] Difference                                                                                  
Info    : [ 70%] Difference - Filling splits of edges                                                                                
Info    : [ 80%] Difference - Making faces                                                                                
Info    : [ 90%] Difference - Adding holes                                                                                
Info    : [  0%] Fragments                                                                                  
Info    : [ 10%] Fragments                                                                                  
Info    : [ 20%] Fragments                                                                                  
Info    : [ 30%] Fragments                                                                                  
Info    : [ 40%] Fragments                                                                                  
Info    : [ 50%] Fragments                                                                                  
Info    : [ 60%] Fragments                                                                                  
Info    : [ 70%] Fragments - Building splits of containers                                                                                
Info    : [ 80%] Fragments - Splitting faces                                                                                
Info    : Meshing 1D...
Info    : [  0%] Meshing curve 2 (Line)
Info    : [  0%] Meshing curve 3 (Line)
Info    : [  0%] Meshing curve 1 (Line)
Info    : [  0%] Meshing curve 4 (Line)
Info    : [  0%] Meshing curve 5 (Line)
Info    : [  0%] Meshing curve 6 (Line)
Info    : [  0%] Meshing curve 7 (Line)
Info    : [  0%] Meshing curve 8 (Line)
Info    : [  0%] Meshing curve 9 (Line)
Info    : [  0%] Meshing curve 10 (Line)
Info    : [  0%] Meshing curve 11 (Line)
Info    : [  0%] Meshing curve 12 (Line)
Info    : [  0%] Meshing curve 13 (Line)
Info    : [  0%] Meshing curve 14 (Line)
Info    : [  0%] Meshing curve 15 (Line)
Info    : [  0%] Meshing curve 16 (Line)
Info    : [  0%] Meshing curve 17 (Line)
Info    : [  0%] Meshing curve 18 (Line)
Info    : [  0%] Meshing curve 19 (Line)
Info    : [  0%] Meshing curve 20 (Line)
Info    : [  0%] Meshing curve 21 (Line)
Info    : [  0%] Meshing curve 22 (Line)
Info    : [ 20%] Meshing curve 23 (Line)
Info    : [ 20%] Meshing curve 24 (Line)
Info    : [ 20%] Meshing curve 25 (Line)
Info    : [ 20%] Meshing curve 26 (Line)
Info    : [ 20%] Meshing curve 27 (Line)
Info    : [ 20%] Meshing curve 28 (Line)
Info    : [ 20%] Meshing curve 29 (Line)
Info    : [ 20%] Meshing curve 30 (Line)
Info    : [ 30%] Meshing curve 31 (Line)
Info    : [ 30%] Meshing curve 32 (Line)
Info    : [ 30%] Meshing curve 33 (Line)
Info    : [ 30%] Meshing curve 34 (Line)
Info    : [ 30%] Meshing curve 35 (Line)
Info    : [ 30%] Meshing curve 36 (Line)
Info    : [ 30%] Meshing curve 37 (Line)
Info    : [ 30%] Meshing curve 38 (Line)
Info    : [ 30%] Meshing curve 39 (Line)
Info    : [ 30%] Meshing curve 40 (Line)
Info    : [ 30%] Meshing curve 41 (Line)
Info    : [ 30%] Meshing curve 42 (Line)
Info    : [ 30%] Meshing curve 43 (Line)
Info    : [ 30%] Meshing curve 44 (Line)
Info    : [ 40%] Meshing curve 45 (Line)
Info    : [ 40%] Meshing curve 46 (Line)
Info    : [ 40%] Meshing curve 47 (Line)
Info    : [ 40%] Meshing curve 48 (Line)
Info    : [ 40%] Meshing curve 49 (Line)
Info    : [ 40%] Meshing curve 50 (Line)
Info    : [ 40%] Meshing curve 51 (Line)
Info    : [ 40%] Meshing curve 52 (Line)
Info    : [ 40%] Meshing curve 53 (Line)
Info    : [ 40%] Meshing curve 54 (Line)
Info    : [ 40%] Meshing curve 55 (Line)
Info    : [ 40%] Meshing curve 56 (Line)
Info    : [ 50%] Meshing curve 57 (Line)
Info    : [ 50%] Meshing curve 58 (Line)
Info    : [ 50%] Meshing curve 59 (Line)
Info    : [ 50%] Meshing curve 60 (Line)
Info    : [ 50%] Meshing curve 61 (Line)
Info    : [ 50%] Meshing curve 62 (Line)
Info    : [ 50%] Meshing curve 63 (Line)
Info    : [ 50%] Meshing curve 64 (Line)
Info    : [ 50%] Meshing curve 65 (Line)
Info    : [ 50%] Meshing curve 66 (Line)
Info    : [ 50%] Meshing curve 67 (Line)
Info    : [ 50%] Meshing curve 68 (Line)
Info    : [ 50%] Meshing curve 69 (Line)
Info    : [ 50%] Meshing curve 70 (Line)
Info    : [ 60%] Meshing curve 71 (Line)
Info    : [ 60%] Meshing curve 72 (Line)
Info    : [ 60%] Meshing curve 73 (Line)
Info    : [ 60%] Meshing curve 74 (Line)
Info    : [ 60%] Meshing curve 75 (Line)
Info    : [ 60%] Meshing curve 76 (Line)
Info    : [ 60%] Meshing curve 77 (Line)
Info    : [ 60%] Meshing curve 78 (Line)
Info    : [ 60%] Meshing curve 79 (Line)
Info    : [ 60%] Meshing curve 80 (Line)
Info    : [ 60%] Meshing curve 81 (Line)
Info    : [ 60%] Meshing curve 82 (Line)
Info    : [ 60%] Meshing curve 83 (Line)
Info    : [ 60%] Meshing curve 84 (Line)
Info    : [ 70%] Meshing curve 85 (Line)
Info    : [ 70%] Meshing curve 86 (Line)
Info    : [ 70%] Meshing curve 87 (Line)
Info    : [ 70%] Meshing curve 88 (Line)
Info    : [ 70%] Meshing curve 89 (Line)
Info    : [ 70%] Meshing curve 90 (Line)
Info    : [ 70%] Meshing curve 91 (Line)
Info    : [ 70%] Meshing curve 92 (Line)
Info    : [ 70%] Meshing curve 93 (Line)
Info    : [ 70%] Meshing curve 94 (Line)
Info    : [ 70%] Meshing curve 95 (Line)
Info    : [ 70%] Meshing curve 96 (Line)
Info    : [ 80%] Meshing curve 97 (Line)
Info    : [ 80%] Meshing curve 99 (Line)
Info    : [ 80%] Meshing curve 100 (Line)
Info    : [ 80%] Meshing curve 101 (Line)
Info    : [ 80%] Meshing curve 102 (Line)
Info    : [ 80%] Meshing curve 103 (Line)
Info    : [ 80%] Meshing curve 104 (Line)
Info    : [ 80%] Meshing curve 105 (Line)
Info    : [ 80%] Meshing curve 106 (Line)
Info    : [ 80%] Meshing curve 107 (Line)
Info    : [ 80%] Meshing curve 108 (Line)
Info    : [ 80%] Meshing curve 109 (Line)
Info    : [ 80%] Meshing curve 110 (Line)
Info    : [ 90%] Meshing curve 111 (Line)
Info    : [ 90%] Meshing curve 112 (Line)
Info    : [ 90%] Meshing curve 113 (Line)
Info    : [ 90%] Meshing curve 114 (Line)
Info    : [ 90%] Meshing curve 115 (Line)
Info    : [ 90%] Meshing curve 116 (Line)
Info    : [ 90%] Meshing curve 117 (Line)
Info    : [ 90%] Meshing curve 118 (Line)
Info    : [ 90%] Meshing curve 119 (Line)
Info    : [ 90%] Meshing curve 120 (Line)
Info    : [ 90%] Meshing curve 121 (Line)
Info    : [ 90%] Meshing curve 122 (Line)
Info    : [100%] Meshing curve 123 (Line)
Info    : [100%] Meshing curve 124 (Line)
Info    : [100%] Meshing curve 125 (Line)
Info    : [100%] Meshing curve 126 (Line)
Info    : [100%] Meshing curve 127 (Line)
Info    : [100%] Meshing curve 128 (Line)
Info    : [100%] Meshing curve 129 (Line)
Info    : [100%] Meshing curve 130 (Line)
Info    : [100%] Meshing curve 131 (Line)
Info    : [100%] Meshing curve 132 (Line)
Info    : [ 80%] Meshing curve 98 (Line)
Info    : Done meshing 1D (Wall 0.0104185s, CPU 0.021782s)
Info    : Meshing 2D...
Info    : [  0%] Meshing surface 3 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 4 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 2 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 1 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 5 (Plane, Frontal-Delaunay)
Info    : [ 10%] Meshing surface 6 (Plane, Frontal-Delaunay)
Info    : [ 10%] Meshing surface 7 (Plane, Frontal-Delaunay)
Info    : [ 10%] Meshing surface 8 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 11 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 10 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 13 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 12 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 14 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 15 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 16 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 17 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 18 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 19 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 20 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 21 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 22 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 23 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 24 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 25 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 9 (Plane, Frontal-Delaunay)
Info    : [ 20%] Meshing surface 26 (Plane, Frontal-Delaunay)
Info    : [ 70%] Meshing surface 27 (Plane, Frontal-Delaunay)
Info    : [ 70%] Meshing surface 29 (Plane, Frontal-Delaunay)
Info    : [ 70%] Meshing surface 30 (Plane, Frontal-Delaunay)
Info    : [ 70%] Meshing surface 31 (Plane, Frontal-Delaunay)
Info    : [ 70%] Meshing surface 28 (Plane, Frontal-Delaunay)
Info    : [ 70%] Meshing surface 32 (Plane, Frontal-Delaunay)
Info    : [ 70%] Meshing surface 33 (Plane, Frontal-Delaunay)
Info    : Done meshing 2D (Wall 0.0525766s, CPU 0.076901s)
Info    : 2085 nodes 4556 elements
Info    : Writing 'mesh.msh'...
Info    : Done writing 'mesh.msh'
Info    : Writing '/tmp/tmpb0cnvia2/mesh.msh'...
Info    : Done writing '/tmp/tmpb0cnvia2/mesh.msh'

[]

../_images/2bd47db5e1749b226ec071525ecee58c4474641e065bc0b317dc753e6c58a8a9.png

At z=0, you can see only the core and slab:

mesh = get_mesh(
    component=waveguide,
    type="xy",
    z=0.0,
    layer_stack=filtered_layer_stack,
    filename=f"{filename}.msh",
)
mesh = mesh_with_physicals(mesh, filename)
mesh = from_meshio(mesh)
mesh.draw().plot()
Info    : [  0%] Difference                                                                                  
Info    : [ 10%] Difference                                                                                  
Info    : [ 20%] Difference - Performing Vertex-Face intersection                                                                                
Info    : [ 30%] Difference                                                                                  
Info    : [ 40%] Difference                                                                                  
Info    : [ 50%] Difference                                                                                  
Info    : [ 60%] Difference                                                                                  
Info    : [ 70%] Difference - Filling splits of edges                                                                                
Info    : [ 80%] Difference - Making faces                                                                                
Info    : [ 90%] Difference                                                                                  
                                                                                
Info    : [  0%] Fragments                                                                                  
Info    : [ 10%] Fragments - Performing intersection of shapes                                                                                
                                                                                
Info    : Meshing 1D...
Info    : [  0%] Meshing curve 1 (Line)
Info    : [  0%] Meshing curve 3 (Line)
Info    : [  0%] Meshing curve 2 (Line)
Info    : [ 30%] Meshing curve 4 (Line)
Info    : Done meshing 1D (Wall 0.0147084s, CPU 0.043926s)
Info    : Meshing 2D...
Info    : Meshing surface 1 (Plane, Frontal-Delaunay)
Info    : Done meshing 2D (Wall 0.0479875s, CPU 0.095968s)
Info    : 1103 nodes 2208 elements
Info    : Writing 'mesh.msh'...
Info    : Done writing 'mesh.msh'
Info    : Writing '/tmp/tmpkcdoemkj/mesh.msh'...
Info    : Done writing '/tmp/tmpkcdoemkj/mesh.msh'
Warning : Boolean fragments skipped - too few arguments

[]

../_images/5ccc2c8e3b1a7f38c25c2402b87615ab05168e1b8ca1dafd8bcbc8ddd7eeff8f.png

At z=1.0, you can only see the vias appear:

mesh = get_mesh(
    component=waveguide,
    type="xy",
    z=1.0,
    layer_stack=filtered_layer_stack,
    filename=f"{filename}.msh",
)
mesh = mesh_with_physicals(mesh, filename)
mesh = from_meshio(mesh)
mesh.draw().plot()
Info    : [  0%] Union                                                                                  
Info    : [ 10%] Union - Performing intersection of shapes                                                                                
Info    : [ 80%] Union - Building splits of containers                                                                                
                                                                                
Info    : Meshing 1D...
Info    : [  0%] Meshing curve 2 (Line)
Info    : [  0%] Meshing curve 1 (Line)
Info    : [  0%] Meshing curve 3 (Line)
Info    : [  0%] Meshing curve 4 (Line)
Info    : [  0%] Meshing curve 6 (Line)
Info    : [  0%] Meshing curve 5 (Line)
Info    : [  0%] Meshing curve 7 (Line)
Info    : [  0%] Meshing curve 8 (Line)
Info    : [  0%] Meshing curve 9 (Line)
Info    : [  0%] Meshing curve 10 (Line)
Info    : [  0%] Meshing curve 11 (Line)
Info    : [  0%] Meshing curve 12 (Line)
Info    : [  0%] Meshing curve 13 (Line)
Info    : [  0%] Meshing curve 14 (Line)
Info    : [  0%] Meshing curve 15 (Line)
Info    : [  0%] Meshing curve 16 (Line)
Info    : [  0%] Meshing curve 17 (Line)
Info    : [  0%] Meshing curve 18 (Line)
Info    : [  0%] Meshing curve 19 (Line)
Info    : [  0%] Meshing curve 20 (Line)
Info    : [  0%] Meshing curve 21 (Line)
Info    : [  0%] Meshing curve 22 (Line)
Info    : [  0%] Meshing curve 23 (Line)
Info    : [  0%] Meshing curve 24 (Line)
Info    : [  0%] Meshing curve 25 (Line)
Info    : [  0%] Meshing curve 26 (Line)
Info    : [  0%] Meshing curve 27 (Line)
Info    : [  0%] Meshing curve 28 (Line)
Info    : [  0%] Meshing curve 29 (Line)
Info    : [  0%] Meshing curve 30 (Line)
Info    : [  0%] Meshing curve 31 (Line)
Info    : [  0%] Meshing curve 32 (Line)
Info    : [  0%] Meshing curve 33 (Line)
Info    : [  0%] Meshing curve 34 (Line)
Info    : [  0%] Meshing curve 35 (Line)
Info    : [  0%] Meshing curve 36 (Line)
Info    : [  0%] Meshing curve 37 (Line)
Info    : [  0%] Meshing curve 38 (Line)
Info    : [  0%] Meshing curve 39 (Line)
Info    : [  0%] Meshing curve 40 (Line)
Info    : [  0%] Meshing curve 41 (Line)
Info    : [  0%] Meshing curve 42 (Line)
Info    : [  0%] Meshing curve 43 (Line)
Info    : [  0%] Meshing curve 44 (Line)
Info    : [  0%] Meshing curve 45 (Line)
Info    : [  0%] Meshing curve 46 (Line)
Info    : [  0%] Meshing curve 47 (Line)
Info    : [  0%] Meshing curve 48 (Line)
Info    : [  0%] Meshing curve 49 (Line)
Info    : [  0%] Meshing curve 50 (Line)
Info    : [  0%] Meshing curve 51 (Line)
Info    : [  0%] Meshing curve 52 (Line)
Info    : [  0%] Meshing curve 53 (Line)
Info    : [  0%] Meshing curve 54 (Line)
Info    : [  0%] Meshing curve 55 (Line)
Info    : [  0%] Meshing curve 56 (Line)
Info    : [  0%] Meshing curve 57 (Line)
Info    : [  0%] Meshing curve 58 (Line)
Info    : [  0%] Meshing curve 59 (Line)
Info    : [  0%] Meshing curve 60 (Line)
Info    : [  0%] Meshing curve 61 (Line)
Info    : [  0%] Meshing curve 62 (Line)
Info    : [  0%] Meshing curve 63 (Line)
Info    : [  0%] Meshing curve 64 (Line)
Info    : [  0%] Meshing curve 66 (Line)
Info    : [  0%] Meshing curve 65 (Line)
Info    : [  0%] Meshing curve 67 (Line)
Info    : [  0%] Meshing curve 68 (Line)
Info    : [  0%] Meshing curve 69 (Line)
Info    : [  0%] Meshing curve 70 (Line)
Info    : [  0%] Meshing curve 71 (Line)
Info    : [  0%] Meshing curve 72 (Line)
Info    : [  0%] Meshing curve 73 (Line)
Info    : [  0%] Meshing curve 74 (Line)
Info    : [  0%] Meshing curve 75 (Line)
Info    : [  0%] Meshing curve 76 (Line)
Info    : [  0%] Meshing curve 77 (Line)
Info    : [  0%] Meshing curve 78 (Line)
Info    : [  0%] Meshing curve 79 (Line)
Info    : [  0%] Meshing curve 80 (Line)
Info    : [  0%] Meshing curve 81 (Line)
Info    : [  0%] Meshing curve 82 (Line)
Info    : [  0%] Meshing curve 83 (Line)
Info    : [  0%] Meshing curve 84 (Line)
Info    : [  0%] Meshing curve 85 (Line)
Info    : [  0%] Meshing curve 86 (Line)
Info    : [  0%] Meshing curve 87 (Line)
Info    : [  0%] Meshing curve 88 (Line)
Info    : [  0%] Meshing curve 89 (Line)
Info    : [  0%] Meshing curve 90 (Line)
Info    : [  0%] Meshing curve 91 (Line)
Info    : [  0%] Meshing curve 92 (Line)
Info    : [  0%] Meshing curve 93 (Line)
Info    : [  0%] Meshing curve 94 (Line)
Info    : [  0%] Meshing curve 95 (Line)
Info    : [  0%] Meshing curve 96 (Line)
Info    : [  0%] Meshing curve 97 (Line)
Info    : [  0%] Meshing curve 98 (Line)
Info    : [  0%] Meshing curve 99 (Line)
Info    : [  0%] Meshing curve 100 (Line)
Info    : [  0%] Meshing curve 101 (Line)
Info    : [  0%] Meshing curve 102 (Line)
Info    : [  0%] Meshing curve 103 (Line)
Info    : [  0%] Meshing curve 104 (Line)
Info    : [  0%] Meshing curve 105 (Line)
Info    : [  0%] Meshing curve 106 (Line)
Info    : [  0%] Meshing curve 107 (Line)
Info    : [  0%] Meshing curve 108 (Line)
Info    : [  0%] Meshing curve 109 (Line)
Info    : [  0%] Meshing curve 110 (Line)
Info    : [  0%] Meshing curve 111 (Line)
Info    : [  0%] Meshing curve 112 (Line)
Info    : [  0%] Meshing curve 113 (Line)
Info    : [  0%] Meshing curve 114 (Line)
Info    : [  0%] Meshing curve 115 (Line)
Info    : [  0%] Meshing curve 116 (Line)
Info    : [  0%] Meshing curve 117 (Line)
Info    : [  0%] Meshing curve 118 (Line)
Info    : [  0%] Meshing curve 119 (Line)
Info    : [  0%] Meshing curve 120 (Line)
Info    : [  0%] Meshing curve 121 (Line)
Info    : [  0%] Meshing curve 122 (Line)
Info    : [  0%] Meshing curve 123 (Line)
Info    : [  0%] Meshing curve 124 (Line)
Info    : [  0%] Meshing curve 125 (Line)
Info    : [  0%] Meshing curve 126 (Line)
Info    : [  0%] Meshing curve 127 (Line)
Info    : [  0%] Meshing curve 128 (Line)
Info    : Done meshing 1D (Wall 0.0276367s, CPU 0.086123s)
Info    : Meshing 2D...
Info    : [  0%] Meshing surface 2 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 1 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 4 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 5 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 6 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 3 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 7 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 8 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 9 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 10 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 11 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 12 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 13 (Plane, Frontal-Delaunay)
Info    : [ 40%] Meshing surface 14 (Plane, Frontal-Delaunay)
Info    : [ 40%] Meshing surface 15 (Plane, Frontal-Delaunay)
Info    : [ 40%] Meshing surface 16 (Plane, Frontal-Delaunay)
Info    : [ 40%] Meshing surface 17 (Plane, Frontal-Delaunay)
Info    : [ 40%] Meshing surface 18 (Plane, Frontal-Delaunay)
Info    : [ 40%] Meshing surface 19 (Plane, Frontal-Delaunay)
Info    : [ 40%] Meshing surface 20 (Plane, Frontal-Delaunay)
Info    : [ 60%] Meshing surface 21 (Plane, Frontal-Delaunay)
Info    : [ 60%] Meshing surface 22 (Plane, Frontal-Delaunay)
Info    : [ 60%] Meshing surface 23 (Plane, Frontal-Delaunay)
Info    : [ 60%] Meshing surface 24 (Plane, Frontal-Delaunay)
Info    : [ 60%] Meshing surface 25 (Plane, Frontal-Delaunay)
Info    : [ 60%] Meshing surface 26 (Plane, Frontal-Delaunay)
Info    : [ 60%] Meshing surface 27 (Plane, Frontal-Delaunay)
Info    : [ 80%] Meshing surface 28 (Plane, Frontal-Delaunay)
Info    : [ 80%] Meshing surface 29 (Plane, Frontal-Delaunay)
Info    : [ 80%] Meshing surface 30 (Plane, Frontal-Delaunay)
Info    : [ 80%] Meshing surface 31 (Plane, Frontal-Delaunay)
Info    : [ 80%] Meshing surface 32 (Plane, Frontal-Delaunay)
Info    : Done meshing 2D (Wall 0.0214411s, CPU 0.064236s)
Info    : 384 nodes 832 elements
Info    : Writing 'mesh.msh'...
Info    : Done writing 'mesh.msh'
Info    : Writing '/tmp/tmptpjhm5q9/mesh.msh'...
Info    : Done writing '/tmp/tmptpjhm5q9/mesh.msh'

[]

../_images/70ca9d2d0ad319e35f2547a55dfc6121dd7d590d8cbcdff9735fd439c50e3993.png

Controlling meshing domain#

You can use functions that return other components to modify the simulation domain, for instance gdsfactory.geometry.trim:

waveguide_trimmed = gf.Component()
waveguide_trimmed.add_ref(
    gf.geometry.trim(
        component=waveguide,
        domain=[[3, -4], [3, 4], [5, 4], [5, -4]],
    )
)

waveguide_trimmed.plot()
2024-05-10 10:29:16.209 | WARNING  | gdsfactory.component:plot_klayout:1645 - UserWarning: Unnamed cells, 1 in 'Unnamed_17e60e4a'

../_images/f9b6be0e70326f6ff6d2c6814172ba37bc79ebbbab7a7aac4b4860d199b68884.png
mesh = get_mesh(
    component=waveguide_trimmed,
    type="xy",
    z=0.09,
    layer_stack=filtered_layer_stack,
    filename=f"{filename}.msh",
)
mesh = mesh_with_physicals(mesh, filename)
mesh = from_meshio(mesh)
mesh.draw().plot()
Info    : [  0%] Union                                                                                  
Info    : [ 10%] Union - Performing intersection of shapes                                                                                
Info    : [ 80%] Union - Building splits of containers                                                                                
                                                                                
Info    : [  0%] Difference                                                                                  
Info    : [ 10%] Difference                                                                                  
Info    : [ 20%] Difference                                                                                  
Info    : [ 30%] Difference                                                                                  
Info    : [ 40%] Difference                                                                                  
Info    : [ 50%] Difference                                                                                  
Info    : [ 60%] Difference                                                                                  
Info    : [ 70%] Difference                                                                                  
Info    : [ 80%] Difference - Making faces                                                                                
Info    : [ 90%] Difference - Adding holes                                                                                
Info    : [  0%] Fragments                                                                                  
Info    : [ 10%] Fragments                                                                                  
Info    : [ 40%] Fragments                                                                                  
Info    : [ 70%] Fragments                                                                                  
Info    : [ 80%] Fragments - Splitting faces                                                                                
                                                                                
Info    : [  0%] Difference                                                                                  
Info    : [ 10%] Difference                                                                                  
Info    : [ 20%] Difference                                                                                  
Info    : [ 30%] Difference                                                                                  
Info    : [ 40%] Difference                                                                                  
Info    : [ 50%] Difference                                                                                  
Info    : [ 60%] Difference                                                                                  
Info    : [ 70%] Difference                                                                                  
Info    : [ 80%] Difference - Making faces                                                                                
Info    : [ 90%] Difference - Adding holes                                                                                
Info    : [  0%] Fragments                                                                                  
Info    : [ 10%] Fragments                                                                                  
Info    : [ 40%] Fragments                                                                                  
Info    : [ 70%] Fragments                                                                                  
Info    : [ 80%] Fragments - Splitting faces                                                                                
                                                                                
Info    : Meshing 1D...
Info    : [  0%] Meshing curve 3 (Line)
Info    : [  0%] Meshing curve 1 (Line)
Info    : [  0%] Meshing curve 2 (Line)
Info    : [  0%] Meshing curve 4 (Line)
Info    : [  0%] Meshing curve 6 (Line)
Info    : [  0%] Meshing curve 5 (Line)
Info    : [  0%] Meshing curve 7 (Line)
Info    : [  0%] Meshing curve 8 (Line)
Info    : [  0%] Meshing curve 9 (Line)
Info    : [  0%] Meshing curve 10 (Line)
Info    : [  0%] Meshing curve 11 (Line)
Info    : [  0%] Meshing curve 12 (Line)
Info    : Done meshing 1D (Wall 0.0133348s, CPU 0.041568s)
Info    : Meshing 2D...
Info    : [  0%] Meshing surface 2 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 3 (Plane, Frontal-Delaunay)
Info    : [  0%] Meshing surface 1 (Plane, Frontal-Delaunay)
Info    : Done meshing 2D (Wall 0.00358984s, CPU 0.012982s)
Info    : 125 nodes 276 elements
Info    : Writing 'mesh.msh'...
Info    : Done writing 'mesh.msh'
Info    : Writing '/tmp/tmpais55khk/mesh.msh'...
Info    : Done writing '/tmp/tmpais55khk/mesh.msh'

[]

../_images/d824cb00e5300fd8b2f63c3bcf65e5c5c51507218eed4640c847408b897142e9.png