Skip to content

Commit d60c587

Browse files
committed
change: face sampling points based on size
1 parent 3b1a6be commit d60c587

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

tidy3d/components/geometry/base.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
)
6464

6565
POLY_GRID_SIZE = 1e-12
66-
_NUM_PTS_DIM_BOX_FACE = 200
66+
_BOX_FACE_GRID_SIZE = 1e-3
6767

6868

6969
_shapely_operations = {
@@ -1722,8 +1722,14 @@ def compute_tangential_vectors(
17221722
rotated_corners = (rotation_matrix @ face_corners.T).T
17231723
p1, p2, p3, p4 = rotated_corners
17241724

1725-
num_s = _NUM_PTS_DIM_BOX_FACE
1726-
num_t = _NUM_PTS_DIM_BOX_FACE
1725+
# Determine number of points along each face edge based on _BOX_FACE_GRID_SIZE
1726+
edge1 = rotated_corners[1] - rotated_corners[0]
1727+
edge2 = rotated_corners[2] - rotated_corners[0]
1728+
len_s = np.linalg.norm(edge1)
1729+
len_t = np.linalg.norm(edge2)
1730+
num_s = max(1, int(np.ceil(len_s / _BOX_FACE_GRID_SIZE)))
1731+
num_t = max(1, int(np.ceil(len_t / _BOX_FACE_GRID_SIZE)))
1732+
17271733
s_vals = np.linspace(0, 1, 2 * num_s + 1)[1::2]
17281734
t_vals = np.linspace(0, 1, 2 * num_t + 1)[1::2]
17291735
S, T = np.meshgrid(s_vals, t_vals, indexing="ij")
@@ -1757,7 +1763,7 @@ def compute_tangential_vectors(
17571763
perps1=perps1,
17581764
perps2=perps2,
17591765
)
1760-
return surface_mesh, n_local
1766+
return surface_mesh
17611767

17621768

17631769
""" Abstract subclasses """
@@ -2657,11 +2663,6 @@ def derivative_faces(
26572663

26582664
for min_max_index, _ in enumerate((0, -1)):
26592665
for axis in range(3):
2660-
if rotation_matrix is not None:
2661-
rotation_matrix = rotation_matrix
2662-
else:
2663-
rotation_matrix = None
2664-
26652666
vjp_face = self.derivative_face(
26662667
min_max_index=min_max_index,
26672668
axis_normal=axis,
@@ -2685,7 +2686,7 @@ def derivative_face(
26852686
Compute the derivative (VJP) with respect to shifting a face of a rotated box,
26862687
using full integration over that face.
26872688
"""
2688-
mesh, _ = self.build_box_face_mesh(
2689+
mesh = self.build_box_face_mesh(
26892690
center=np.asarray(self.center, float),
26902691
size=np.asarray(self.size, float),
26912692
axis_normal=axis_normal,
@@ -3018,7 +3019,6 @@ def compute_derivatives(self, derivative_info: DerivativeInfo) -> AutogradFieldM
30183019
)
30193020
derivative_map[("geometry", "center")] = transformed_center_gradient
30203021
derivative_map[("geometry", "size")] = transformed_size_gradient
3021-
derivative_map[("transform",)] = np.zeros((4, 4))
30223022
return derivative_map
30233023

30243024

0 commit comments

Comments
 (0)