Cytnx
Cytnx copied to clipboard
fatal internal error when using `convert_from`
Description
When attempting to convert a symmetric UniTensor into a non-symmetric UniTensor using convert_from, a fatal internal error returns, indicating that UniTensor_base is uninitialized.
This issue appears in Cytnx v1.0.1 but does not occur in older versions.
Minimal Code to Reproduce:
import sys
sys.path.insert(0, "/home/chansh/cytnx_install_12_Nov_2025")
import cytnx
bi = cytnx.Bond(cytnx.BD_IN, [[0],[1]], [1,1], [cytnx.Symmetry.Zn(2)])
bo = cytnx.Bond(cytnx.BD_OUT, [[0],[1]], [1,1], [cytnx.Symmetry.Zn(2)])
A_sym = cytnx.UniTensor([bi, bo], rowrank=1)
A_non_sym = cytnx.UniTensor(cytnx.zeros([2,2]), rowrank=1)
A_non_sym.convert_from(A_sym)
Error Message:
# Cytnx error occur at virtual void cytnx::UniTensor_base::from_(const boost::intrusive_ptr<cytnx::UniTensor_base>&, const bool&, const cytnx::cytnx_double&)
# error: [ERROR] fatal internal, cannot call on a un-initialize UniTensor_base
# file : /home/chansh/Cytnx-master-12-Nov-2025/src/UniTensor_base.cpp (810)
Stack trace:
/home/chansh/cytnx_install_12_Nov_2025/cytnx/cytnx.cpython-39-x86_64-linux-gnu.so(+0x711633) [0x7630ff511633]
/home/chansh/cytnx_install_12_Nov_2025/cytnx/cytnx.cpython-39-x86_64-linux-gnu.so(+0x2841d7) [0x7630ff0841d7]
/home/chansh/cytnx_install_12_Nov_2025/cytnx/cytnx.cpython-39-x86_64-linux-gnu.so(+0x1ad2ad) [0x7630fefad2ad]
/home/chansh/miniconda3/envs/cytnx_test2/bin/python(+0x145cc6) [0x623c254a0cc6]
/home/chansh/miniconda3/envs/cytnx_test2/bin/python(_PyObject_MakeTpCall+0x2ec) [0x623c254898ac]
/home/chansh/miniconda3/envs/cytnx_test2/bin/python(+0x143dae) [0x623c2549edae]
/home/chansh/miniconda3/envs/cytnx_test2/bin/python(_PyEval_EvalFrameDefault+0x498b) [0x623c254859bb]
/home/chansh/miniconda3/envs/cytnx_test2/bin/python(+0x1251e5) [0x623c254801e5]
/home/chansh/miniconda3/envs/cytnx_test2/bin/python(_PyFunction_Vectorcall+0xd9) [0x623c25491759]
/home/chansh/miniconda3/envs/cytnx_test2/bin/python(_PyEval_EvalFrameDefault+0x369d) [0x623c254846cd]