Dual integrators missing serialiser
Hello,
I started transitioning to the 3.0 release from 2.1, and I came upon this issue when running some simulations using the ac-navier-stokes solver. I seem to have fixed it by importing the serialiser in the pyfr.integrators.pseudo.base file and then instantiating the object (self.serialiser = Serialiser()) in the __init__ method of the BaseDualPseudoIntegrator class. It seems to be working now and the printed data looks OK.
I’m not sure what unexpected behaviour this could cause (I’m new to this software and not confident in my bug fix), but I wanted to bring it to your attention.
Thank you ![]()
Error print out (if applicable)
Traceback (most recent call last):
File "/home/fredm/pyFR/contained/env3/bin/pyfr", line 8, in <module>
sys.exit(main())
^^^^^^
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/__main__.py", line 242, in main
args.process(args)
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/__main__.py", line 552, in process_run
_process_common(args, None, Inifile.load(args.cfg))
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/__main__.py", line 537, in _process_common
solver = get_solver(backend, mesh, soln, cfg)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/solvers/__init__.py", line 14, in get_solver
return get_integrator(backend, systemcls, mesh, initsoln, cfg)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/integrators/__init__.py", line 34, in get_integrator
return integrator(backend, systemcls, mesh, initsoln, cfg)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/integrators/dual/phys/controllers.py", line 6, in __init__
super().__init__(*args, **kwargs)
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/integrators/dual/phys/steppers.py", line 14, in __init__
super().__init__(*args, **kwargs)
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/integrators/dual/phys/base.py", line 14, in __init__
self.pseudointegrator = get_pseudo_integrator(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/integrators/dual/pseudo/__init__.py", line 45, in get_pseudo_integrator
return pseudointegrator(backend, systemcls, mesh, initsoln, cfg,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/integrators/dual/pseudo/pseudocontrollers.py", line 87, in __init__
super().__init__(*args, **kwargs)
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/integrators/dual/pseudo/pseudocontrollers.py", line 9, in __init__
super().__init__(*args, **kwargs)
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/integrators/dual/pseudo/pseudosteppers.py", line 184, in __init__
super().__init__(*args, **kwargs)
File "/home/fredm/pyFR/contained/PyFR-release-v3.0/pyfr/integrators/dual/pseudo/base.py", line 50, in __init__
self.serialiser)
^^^^^^^^^^^^^^^
AttributeError: 'DualLocalPiRk45Pseudointegrator' object has no attribute 'serialiser'
PyFR information
- PyFR version: 3.0 (release)
- OS: Ubuntu 24.04
- Compiler and version: Python 3.12.3
- Backend (if applicable): CUDA