Skip to content

Commit 320c583

Browse files
committed
Some renames
1 parent 866b1de commit 320c583

File tree

5 files changed

+20
-17
lines changed

5 files changed

+20
-17
lines changed

genesis/engine/solvers/rigid/constraint_solver_decomp_island.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import genesis.utils.array_class as array_class
1010

11-
from .rigid_solver_decomp_util import func_wakeup_entity_and_its_island
11+
from .rigid_solver_decomp_util import func_wakeup_entity_and_its_temp_island
1212
from .contact_island import ContactIsland
1313
from genesis.engine.solvers.rigid.rigid_debug import Debug
1414

@@ -127,7 +127,7 @@ def resolve(self):
127127
if ti.static(self._solver._use_hibernation):
128128
is_active = not self.contact_island.island_hibernated[i_island, i_b]
129129
if is_active:
130-
self.add_collision_constraints(i_island, i_b)
130+
self.add_collision_constraints__and_wakeup_entities(i_island, i_b)
131131
self.add_joint_limit_constraints(i_island, i_b)
132132
self._func_init_solver(i_island, i_b)
133133
self._func_solve(i_island, i_b)
@@ -139,7 +139,7 @@ def handle_constraints(self):
139139
self.resolve()
140140

141141
@ti.func
142-
def add_collision_constraints(self, i_island: int, i_b: int):
142+
def add_collision_constraints__and_wakeup_entities(self, i_island: int, i_b: int):
143143
self.n_constraints[i_b] = 0
144144
for i_island_col in range(self.contact_island.island_col[i_island, i_b].n):
145145
i_col_ = self.contact_island.island_col[i_island, i_b].start + i_island_col
@@ -233,9 +233,9 @@ def add_collision_constraints(self, i_island: int, i_b: int):
233233
# wake up entities
234234
any_hibernated_entity_idx = entity_idx_a if is_entity_a_hibernated else entity_idx_b
235235
temp_island_idx = self.contact_island.entity_island[any_hibernated_entity_idx, i_b]
236-
Debug.assertf(0x0ad00004, temp_island_idx == i_island) # Temp island indices don't match
236+
Debug.assertf(0x7ad00004, temp_island_idx == i_island) # Temp island indices don't match
237237

238-
func_wakeup_entity_and_its_island(
238+
func_wakeup_entity_and_its_temp_island(
239239
any_hibernated_entity_idx,
240240
i_b,
241241
self._solver.entities_state,

genesis/engine/solvers/rigid/contact_island.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from genesis.engine.solvers.rigid.collider_decomp import Collider
1111
from genesis.engine.solvers.rigid.rigid_solver_decomp import RigidSolver
1212

13+
INVALID_NEXT_HIBERNATED_ENTITY_IDX = -1
1314
INVALID_HIBERNATED_ISLAND_ID = -1 # -1 is reserved for "no island", i.e. active or fixed entities
1415
FIRST_HIBERNATED_ISLAND_ID = 1 # start at 1, leave 0 unused, use -1 for "no island"
1516

@@ -87,6 +88,7 @@ def __init__(self, collider: "Collider"):
8788

8889
# Used to make islands persist through hibernation:
8990
self.unused__entity_idx_to_next_entity_idx_in_hibernated_island = ti.field(dtype=gs.ti_int, shape=self.solver._batch_shape(self.solver.n_entities))
91+
self.unused__entity_idx_to_next_entity_idx_in_hibernated_island.fill(INVALID_NEXT_HIBERNATED_ENTITY_IDX)
9092

9193
# Warning: do not mistake island_id for island_idx
9294
self.next_hibernated_island_id = ti.field(dtype=gs.ti_int, shape=self.solver._B)
@@ -138,9 +140,10 @@ def add_all_contact_edges(self):
138140

139141
@ti.kernel
140142
def temp_hack__add_all_hibernated_island_edges(self):
143+
_B = self.solver._B
141144
n_entities = self.solver.n_entities
142145
ti.loop_config(serialize=self.solver._para_level < gs.PARA_LEVEL.ALL)
143-
for i_b in range(self.solver._B):
146+
for i_b in range(_B):
144147
for i_e in range(n_entities):
145148
for i_e2 in range(i_e + 1, n_entities):
146149
if self.hibernated_entity_idx_to_hibernated_island_id[i_e, i_b] != INVALID_HIBERNATED_ISLAND_ID \
@@ -155,10 +158,10 @@ def construct(self):
155158
self.temp_hack__add_all_hibernated_island_edges()
156159
self.preprocess_island__map_entities_to_edges()
157160
self.construct_islands()
158-
self.postprocess_island__assign_collisions_to_temp_islands()
161+
self.postprocess_island__assign_contact_data_to_temp_islands()
159162

160163
@ti.kernel
161-
def postprocess_island__assign_collisions_to_temp_islands(self):
164+
def postprocess_island__assign_contact_data_to_temp_islands(self):
162165
ti.loop_config(serialize=self.solver._para_level < gs.PARA_LEVEL.ALL)
163166
for i_b in range(self.solver._B):
164167
for i_col in range(self.collider._collider_state.n_contacts[i_b]):

genesis/engine/solvers/rigid/rigid_solver_decomp.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from .collider_decomp import Collider
2525
from .constraint_solver_decomp import ConstraintSolver
2626
from .constraint_solver_decomp_island import ConstraintSolverIsland
27-
from .rigid_solver_decomp_util import func_wakeup_entity_and_its_island
27+
from .rigid_solver_decomp_util import func_wakeup_entity_and_its_temp_island
2828
from ....utils.sdf_decomp import SDF
2929

3030
if TYPE_CHECKING:
@@ -4039,7 +4039,7 @@ def kernel_step_2(
40394039
)
40404040

40414041
if ti.static(static_rigid_sim_config.use_hibernation):
4042-
func_mark_all_entities_for_hibernation_or_update_aabb_sort_buffer(
4042+
func_check_all_awake_islands_for_hibernation_or_update_aabb_sort_buffer(
40434043
dofs_state=dofs_state,
40444044
entities_state=entities_state,
40454045
entities_info=entities_info,
@@ -4920,7 +4920,7 @@ def kernel_update_vgeoms(
49204920

49214921

49224922
@ti.func
4923-
def func_mark_all_entities_for_hibernation_or_update_aabb_sort_buffer(
4923+
def func_check_all_awake_islands_for_hibernation_or_update_aabb_sort_buffer(
49244924
dofs_state: array_class.DofsState,
49254925
entities_state: array_class.EntitiesState,
49264926
entities_info: array_class.EntitiesInfo,
@@ -4956,7 +4956,7 @@ def func_mark_all_entities_for_hibernation_or_update_aabb_sort_buffer(
49564956
entity_idx = ci.entity_id[entity_ref, i_b]
49574957

49584958
is_entity_fixed = entities_info.n_dofs[entity_idx] == 0
4959-
Debug.assertf(0x0ad00005, not is_entity_fixed) # Fixed entity should not belong to an island
4959+
Debug.assertf(0x7ad00005, not is_entity_fixed) # Fixed entity should not belong to an island
49604960

49614961
# we can ignore entitiy_hibernated flag -> cos it implies dofs_state.vel/acc are zero
49624962
is_entity_hibernated = entities_state.hibernated[entity_idx, i_b]
@@ -5006,8 +5006,8 @@ def func_mark_all_entities_for_hibernation_or_update_aabb_sort_buffer(
50065006

50075007
# store entities in the hibernated islands by daisy chaining them
50085008
ci.unused__entity_idx_to_next_entity_idx_in_hibernated_island[prev_entity_idx, i_b] = entity_idx
5009-
50105009
prev_entity_idx = entity_idx
5010+
50115011
ci.hibernated_entity_idx_to_hibernated_island_id[entity_idx, i_b] = hibernated_island_id
50125012

50135013

@@ -5280,7 +5280,7 @@ def func_torque_and_passive_force(
52805280
wakeup = True
52815281

52825282
if ti.static(static_rigid_sim_config.use_hibernation) and entities_state.hibernated[i_e, i_b] and wakeup:
5283-
func_wakeup_entity_and_its_island(i_e, i_b, entities_state, entities_info, dofs_state, links_state, geoms_state, rigid_global_info, contact_island)
5283+
func_wakeup_entity_and_its_temp_island(i_e, i_b, entities_state, entities_info, dofs_state, links_state, geoms_state, rigid_global_info, contact_island)
52845284

52855285
if ti.static(static_rigid_sim_config.use_hibernation):
52865286
ti.loop_config(serialize=static_rigid_sim_config.para_level < gs.PARA_LEVEL.ALL)

genesis/engine/solvers/rigid/rigid_solver_decomp_util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010

1111
@ti.func
12-
def func_wakeup_entity_and_its_island(
12+
def func_wakeup_entity_and_its_temp_island(
1313
i_e,
1414
i_b,
1515
entities_state: array_class.EntitiesState,

genesis/engine/solvers/rigid/rigid_validate.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def validate_entity_hibernation_state_for_all_entities_in_temp_island(
2323
all_okay = all_okay and entities_state.hibernated[entity_idx, i_b] == expected_hibernation_state
2424
if entities_state.hibernated[entity_idx, i_b] != expected_hibernation_state:
2525
error_count += 1
26-
Debug.assertf(0x0ad0000a, all_okay) # Entity expected to be matching the expected hibernation state
26+
Debug.assertf(0x7ad0000a, all_okay) # Entity expected to be matching the expected hibernation state
2727
if not all_okay:
2828
print(f"Entity hibernation state mismatch for temp island {temp_island_idx} of {entity_ref_range.n} entities, expected: {expected_hibernation_state}, error_count: {error_count}")
2929

@@ -47,4 +47,4 @@ def validate_temp_island_contains_both_hibernated_and_awake_entities(
4747
all_awake = ti.u1(all_awake and not is_entity_hibernated)
4848
all_hibernated = ti.u1(all_hibernated and is_entity_hibernated)
4949

50-
Debug.assertf(0x0ad00009, not (all_hibernated or all_awake)) # Island being woken up is expected to contain both hibernated and awake entities
50+
Debug.assertf(0x7ad00009, not (all_hibernated or all_awake)) # Island being woken up is expected to contain both hibernated and awake entities

0 commit comments

Comments
 (0)