EwaldMinimizer is very slow / doesn't return anything when used for anion-substituted structure

Good morning, I apologize in advance for the long post. I am trying to use the MultipleSubstitutionTransformation class on a halide structure (LixMyXz), substituting M3+ with other 3+ cations and X- with other -1 anions. After some debugging, I think I have found an anomaly/error in the script when trying to substitute the X- anion:
In the MultipleSubstitutionTransformation.apply_transformation() function, you can find the following lines:

if not return_ranked_list:
raise ValueError(
“MultipleSubstitutionTransformation has no single”
" best structure output. Must use return_ranked_list."
outputs = []
for charge, el_list in self.substitution_dict.items():
sign = “+” if charge > 0 else “-”
** dummy_sp = f"X{charge}{sign}"**
mapping = {
self.sp_to_replace: {
self.sp_to_replace: 1 - self.r_fraction,
dummy_sp: self.r_fraction,
If the substitution you’re trying to make is on an anion with an oxidation state of 1-, printing dummy_sp will give you ‘‘X-1-’’ instead of ‘‘X1-’’. This prevents the rest of the operations to take place normally. To fix it, I changed the line:
dummy_sp = f"X{charge}{sign}"
dummy_sp = f"X{abs(charge)}{sign}"

Now, the rest of the code runs smoothly up to the EwaldMinimizer class (called in the OrderDisorderedStructureTransformation class that is called in MultipleSubstitutionTransformation). No matter the ALGO used, the class takes a very long time to return any result (2h+ and still going) when I want to substitute the anion X-. On the other hand, it took close to no time when I substituted the cation (for example, when I substituted M3+ for another X3+). I don’t understand why, could someone provide an explanation ? Thank you for your time and help !