If margin is set to zero the meshing fails. Tested in the palace_demo_microstrip notebook, the error is:
Exception Traceback (most recent call last)
/tmp/ipykernel_38063/362282738.py in ?()
1 # Generate mesh (presets: "coarse", "default", "fine")
----> 2 sim.mesh(preset="default", margin=0)
~/gsim/src/gsim/palace/driven.py in ?(self, preset, refined_mesh_size, max_mesh_size, margin, air_above, fmax, show_gui, model_name, verbose)
612 # Extract ports
613 palace_ports = extract_ports(component, stack)
614
615 # Generate mesh (config is written separately by simulate() or write_config())
--> 616 return self._generate_mesh_internal(
617 output_dir=output_dir,
618 mesh_config=mesh_config,
619 ports=palace_ports,
~/gsim/src/gsim/palace/driven.py in ?(self, output_dir, mesh_config, ports, driven_config, model_name, verbose, write_config)
422
423 if verbose:
424 logger.info("Generating mesh in %s", output_dir)
425
--> 426 mesh_result = generate_mesh(
427 component=component,
428 stack=stack,
429 ports=ports,
~/gsim/src/gsim/palace/mesh/pipeline.py in ?(component, stack, ports, output_dir, config, model_name, driven_config, write_config)
179
180 output_dir = Path(output_dir)
181
182 # Use new generator
--> 183 result = gen_mesh(
184 component=component,
185 stack=stack,
186 ports=ports,
~/gsim/src/gsim/palace/mesh/generator.py in ?(component, stack, ports, output_dir, model_name, refined_mesh_size, max_mesh_size, margin, air_margin, fmax, show_gui, driven_config, write_config)
256 )
257
258 finally:
259 gmsh.clear()
--> 260 gmsh.finalize()
261
262 # Build result (store groups for deferred config generation)
263 result = MeshResult(
~/gsim/.venv/lib/python3.12/site-packages/gmsh.py in ?(dim)
2185 lib.gmshModelMeshGenerate(
2186 c_int(dim),
2187 byref(ierr))
2188 if ierr.value != 0:
-> 2189 raise Exception(logger.getLastError())
Exception: PLC Error: A segment and a facet intersect at point
If margin is set to zero the meshing fails. Tested in the palace_demo_microstrip notebook, the error is:
Exception Traceback (most recent call last)
/tmp/ipykernel_38063/362282738.py in ?()
1 # Generate mesh (presets: "coarse", "default", "fine")
----> 2 sim.mesh(preset="default", margin=0)
~/gsim/src/gsim/palace/driven.py in ?(self, preset, refined_mesh_size, max_mesh_size, margin, air_above, fmax, show_gui, model_name, verbose)
612 # Extract ports
613 palace_ports = extract_ports(component, stack)
614
615 # Generate mesh (config is written separately by simulate() or write_config())
--> 616 return self._generate_mesh_internal(
617 output_dir=output_dir,
618 mesh_config=mesh_config,
619 ports=palace_ports,
~/gsim/src/gsim/palace/driven.py in ?(self, output_dir, mesh_config, ports, driven_config, model_name, verbose, write_config)
422
423 if verbose:
424 logger.info("Generating mesh in %s", output_dir)
425
--> 426 mesh_result = generate_mesh(
427 component=component,
428 stack=stack,
429 ports=ports,
~/gsim/src/gsim/palace/mesh/pipeline.py in ?(component, stack, ports, output_dir, config, model_name, driven_config, write_config)
179
180 output_dir = Path(output_dir)
181
182 # Use new generator
--> 183 result = gen_mesh(
184 component=component,
185 stack=stack,
186 ports=ports,
~/gsim/src/gsim/palace/mesh/generator.py in ?(component, stack, ports, output_dir, model_name, refined_mesh_size, max_mesh_size, margin, air_margin, fmax, show_gui, driven_config, write_config)
256 )
257
258 finally:
259 gmsh.clear()
--> 260 gmsh.finalize()
261
262 # Build result (store groups for deferred config generation)
263 result = MeshResult(
~/gsim/.venv/lib/python3.12/site-packages/gmsh.py in ?(dim)
2185 lib.gmshModelMeshGenerate(
2186 c_int(dim),
2187 byref(ierr))
2188 if ierr.value != 0:
-> 2189 raise Exception(logger.getLastError())
Exception: PLC Error: A segment and a facet intersect at point