Skip to content

Commit

Permalink
Add feature to fix only one spiral component
Browse files Browse the repository at this point in the history
  • Loading branch information
JanLuca committed Aug 28, 2024
1 parent 9959dc1 commit 7b6ef2b
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions varipeps/optimization/inner_function.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,24 @@ def calc_ctmrg_expectation_custom(
peps_tensors, unitcell, spiral_vectors = _map_tensors(
input_tensors, unitcell, convert_to_unitcell_func, True
)

if any(i.size == 1 for i in spiral_vectors):
spiral_vectors_x = additional_input.get("spiral_vectors_x")
spiral_vectors_y = additional_input.get("spiral_vectors_y")
if spiral_vectors_x is not None:
if isinstance(spiral_vectors_x, jnp.ndarray):
spiral_vectors_x = (spiral_vectors_x,)
spiral_vectors = tuple(
jnp.array((sx, sy))
for sx, sy in safe_zip(spiral_vectors_x, spiral_vectors)
)
elif spiral_vectors_y is not None:
if isinstance(spiral_vectors_y, jnp.ndarray):
spiral_vectors_y = (spiral_vectors_y,)
spiral_vectors = tuple(
jnp.array((sx, sy))
for sx, sy in safe_zip(spiral_vectors, spiral_vectors_y)
)
else:
peps_tensors, unitcell = _map_tensors(
input_tensors, unitcell, convert_to_unitcell_func, False
Expand Down

0 comments on commit 7b6ef2b

Please sign in to comment.