diff --git a/src/EntangledUnits/EntangledReshaping.jl b/src/EntangledUnits/EntangledReshaping.jl index d4337f6da..bc2591891 100644 --- a/src/EntangledUnits/EntangledReshaping.jl +++ b/src/EntangledUnits/EntangledReshaping.jl @@ -85,5 +85,19 @@ function repeat_periodically(esys, counts) dipole_operators_origin = all_dipole_observables(sys_origin_new; apply_g=false) (; observables, source_idcs) = observables_to_product_space(dipole_operators_origin, sys_origin_new, contraction_info) + return EntangledSystem(sys_new, sys_origin_new, contraction_info, observables, source_idcs) +end + +function resize_supercell(esys::EntangledSystem, dims::NTuple{3,Int}) + (; sys, sys_origin, contraction_info) = esys + + # Resize both entangled and original system periodically + sys_new = reshape_supercell(sys, diagm(Vec3(dims))) + sys_origin_new = reshape_supercell(sys_origin, diagm(Vec3(dims))) + + # Construct dipole operator field for reshaped EntangledSystem + dipole_operators_origin = all_dipole_observables(sys_origin_new; apply_g=false) + (; observables, source_idcs) = observables_to_product_space(dipole_operators_origin, sys_origin_new, contraction_info) + return EntangledSystem(sys_new, sys_origin_new, contraction_info, observables, source_idcs) end \ No newline at end of file