Mesh#

Mesh operations are very important in engineering simulation. PyAEDT can read existing mesh operations in a design, make edits, and create new operations. All mesh operations are conveniently listed within the mesh object:

from pyaedt import Maxwell3d
m3d = Maxwell3d()
all_mesh_ops = m3d.mesh.meshoperations
my_mesh_op = all_mesh_ops[0]
# All properties are in props dictionary.
my_mesh_op.props["my_prop"] = "my_value"
my_mesh_op.update()
Mesh object List

Icepak has a different approach to the mesh operations. Those are managed through mesh regions and can be edited directly from the pyaedt object.

icepak_b = Icepak()

# Global mesh region

icepak_b.mesh.global_mesh_region.MaxElementSizeX = "2mm"
icepak_b.mesh.global_mesh_region.MaxElementSizeY = "3mm"
icepak_b.mesh.global_mesh_region.MaxElementSizeZ = "4mm"
icepak_b.mesh.global_mesh_region.MaxSizeRatio = 2
icepak_b.mesh.global_mesh_region.UserSpecifiedSettings = True
icepak_b.mesh.global_mesh_region.UniformMeshParametersType = "XYZ Max Sizes"
icepak_b.mesh.global_mesh_region.MaxLevels = 2
icepak_b.mesh.global_mesh_region.BufferLayers = 1
icepak_b.mesh.global_mesh_region.update()

box1 = icepak_b.modeler.create_box([0,0,0], [10,20,20])

# Local mesh region

new_mesh_region = icepak_b.mesh.assign_mesh_region([box1.name])

In HFSS 3D Layout, you add mesh operations to nets and layers like this:

from pyedt import Hfss3dLayout

h3d = Hfss3dLayout("myproject.aedt")
setup = h3d.create_setup("HFSS")
mop1 = h3d.mesh.assign_length_mesh("HFSS", layer_name="PWR", net_name="GND")
mop2 = h3d.mesh.assign_skin_depth("HFSS",  layer_name="LAY2", net_name="VCC")