Skip to content

Commit f63a862

Browse files
committed
change parametrization
1 parent 60405cd commit f63a862

File tree

7 files changed

+88
-3297
lines changed

7 files changed

+88
-3297
lines changed

examples/ansys/hot_design_tess/tesseract_config.yaml

Lines changed: 0 additions & 11 deletions
This file was deleted.

examples/ansys/optim_bars.ipynb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
},
105105
{
106106
"cell_type": "code",
107-
"execution_count": 217,
107+
"execution_count": null,
108108
"id": "0fdeb653",
109109
"metadata": {},
110110
"outputs": [
@@ -138,6 +138,15 @@
138138
" (chain + 1) / (n_chains + 1) * Ly - Ly / 2\n",
139139
" )\n",
140140
"\n",
141+
"{\n",
142+
" \"a\": jnp.array([1.0, 2.0, 3.0], dtype=jnp.float32),\n",
143+
" \"b\": jnp.array(2.0, dtype=jnp.float32),\n",
144+
" \"c\": {\"d\": jnp.array(3.0, dtype=jnp.float32)},\n",
145+
"}\n",
146+
"\n",
147+
"flat_array, pytree_def = jax.tree_util.tree_flatten(initial_params)\n",
148+
"\n",
149+
"\n",
141150
"design_out = design_tess.apply(\n",
142151
" {\n",
143152
" \"differentiable_parameters\": initial_params.flatten(),\n",

examples/ansys/optim_grid.ipynb

Lines changed: 43 additions & 3251 deletions
Large diffs are not rendered by default.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
name: sdf_fd_tess
2+
version: "0.2.0"
3+
description: |
4+
Tesseract that takes a .stl generating tesseract reference and uses finite difference gradients
5+
to compute gradients for a signed distance field.
6+
7+
build_config:
8+
target_platform: "linux/x86_64"

examples/ansys/spaceclaim_tess/tesseract_api.py

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
class InputSchema(BaseModel):
2626
"""Input schema for bar geometry design and SDF generation."""
2727

28-
differentiable_bar_parameters: Differentiable[
28+
differentiable_parameters: Differentiable[
2929
Array[
30-
(None, None),
30+
(None,),
3131
Float32,
3232
]
3333
] = Field(
@@ -40,19 +40,19 @@ class InputSchema(BaseModel):
4040
)
4141
)
4242

43-
differentiable_plane_parameters: Differentiable[
44-
Array[
45-
(None,),
46-
Float32,
47-
]
48-
] = Field(
49-
description=(
50-
"Two cutting plane z point heights which combine with a fixed third point "
51-
"centered on the grid at z = grid_height / 2. "
52-
"The shape is (2) "
53-
"The two points are orthognal at the maximum extemts of the grid (+X and +Y)."
54-
)
55-
)
43+
# differentiable_plane_parameters: Differentiable[
44+
# Array[
45+
# (None,),
46+
# Float32,
47+
# ]
48+
# ] = Field(
49+
# description=(
50+
# "Two cutting plane z point heights which combine with a fixed third point "
51+
# "centered on the grid at z = grid_height / 2. "
52+
# "The shape is (2) "
53+
# "The two points are orthognal at the maximum extemts of the grid (+X and +Y)."
54+
# )
55+
# )
5656

5757
non_differentiable_parameters: Array[
5858
(None,),
@@ -65,12 +65,9 @@ class InputSchema(BaseModel):
6565
)
6666
)
6767

68-
"""static_parameters: list[int] = Field(
69-
description=(
70-
"List of integers used to construct the geometry. "
71-
"The first integer is the number of bars."
72-
)
73-
)"""
68+
static_parameters: list[int] = Field(
69+
description=("List of integers used to construct the geometry. ")
70+
)
7471

7572
string_parameters: list[str] = Field(
7673
description=(
@@ -104,8 +101,7 @@ class OutputSchema(BaseModel):
104101

105102

106103
def build_geometry(
107-
differentiable_bar_parameters: np.ndarray,
108-
differentiable_plane_parameters: np.ndarray,
104+
differentiable_parameters: np.ndarray,
109105
non_differentiable_parameters: np.ndarray,
110106
string_parameters: list[str],
111107
) -> list[trimesh.Trimesh]:
@@ -123,8 +119,7 @@ def build_geometry(
123119
prepped_script_path, output_file = _prep_scscript(
124120
temp_dir,
125121
spaceclaim_script,
126-
differentiable_bar_parameters,
127-
differentiable_plane_parameters,
122+
differentiable_parameters,
128123
non_differentiable_parameters,
129124
)
130125
run_spaceclaim(spaceclaim_exe, prepped_script_path)
@@ -137,8 +132,7 @@ def build_geometry(
137132
def _prep_scscript(
138133
temp_dir: TemporaryDirectory,
139134
spaceclaim_script: Path,
140-
differentiable_bar_parameters: np.ndarray,
141-
differentiable_plane_parameters: np.ndarray,
135+
differentiable_parameters: np.ndarray,
142136
non_differentiable_parameters: np.ndarray,
143137
) -> list[str]:
144138
"""Take tesseract inputs and place into a temp .scscript that will be used to run Spaceclaim.
@@ -155,16 +149,16 @@ def _prep_scscript(
155149
# Define dict used to input params to .scscript
156150
keyvalues = {}
157151
keyvalues["__output__"] = output_file
158-
keyvalues["__params__.z2"] = str(differentiable_plane_parameters[0])
159-
keyvalues["__params__.z3"] = str(differentiable_plane_parameters[1])
152+
keyvalues["__params__.z2"] = str(differentiable_parameters[0])
153+
keyvalues["__params__.z3"] = str(differentiable_parameters[1])
160154
keyvalues["__params__.height"] = non_differentiable_parameters[0]
161155
keyvalues["__params__.thickness"] = non_differentiable_parameters[1]
162156

163-
num_of_bars = len(differentiable_bar_parameters)
157+
num_of_bars = len(differentiable_parameters) - 2
164158

165159
for i in range(num_of_bars):
166-
keyvalues[f"__params__.s{i + 1}"] = str(differentiable_bar_parameters[i][0])
167-
keyvalues[f"__params__.e{i + 1}"] = str(differentiable_bar_parameters[i][1])
160+
keyvalues[f"__params__.s{i + 1}"] = str(differentiable_parameters[i * 2 + 0])
161+
keyvalues[f"__params__.e{i + 1}"] = str(differentiable_parameters[i * 2 + 1])
168162

169163
_find_and_replace_keys_in_archive(prepped_script_path, keyvalues)
170164

@@ -256,8 +250,7 @@ def apply(inputs: InputSchema) -> OutputSchema:
256250
Returns TraingularMesh obj and exports a .stl.
257251
"""
258252
mesh = build_geometry(
259-
differentiable_bar_parameters=inputs.differentiable_bar_parameters,
260-
differentiable_plane_parameters=inputs.differentiable_plane_parameters,
253+
differentiable_plane_parameters=inputs.differentiable_parameters,
261254
non_differentiable_parameters=inputs.non_differentiable_parameters,
262255
string_parameters=inputs.string_parameters,
263256
)

0 commit comments

Comments
 (0)