Hi Dedalus users,
I was wondering if it was possible to use complex fourier basis with a real grid space? I have tried in the following code, but I got type errors unsuprisingly. Below is the error I got in the terminal, and I have attached my code.
2026-04-06 16:49:15,967 subsystems 0/1 INFO :: Building subproblem matrices 1/128 (~1%) Elapsed: 0s, Remaining: 3s, Rate: 4.7e+01/s
/home/acook59/miniforge3/envs/dedalus3/lib/python3.13/site-packages/scipy/sparse/_sputils.py:147: ComplexWarning: Casting complex values to real discards the imaginary part
data = np.array(obj, dtype=dtype, copy=copy)
2026-04-06 16:49:16,122 subsystems 0/1 INFO :: Building subproblem matrices 13/128 (~10%) Elapsed: 0s, Remaining: 2s, Rate: 7.4e+01/s
2026-04-06 16:49:16,289 subsystems 0/1 INFO :: Building subproblem matrices 26/128 (~20%) Elapsed: 0s, Remaining: 1s, Rate: 7.6e+01/s
2026-04-06 16:49:16,454 subsystems 0/1 INFO :: Building subproblem matrices 39/128 (~30%) Elapsed: 1s, Remaining: 1s, Rate: 7.7e+01/s
2026-04-06 16:49:16,620 subsystems 0/1 INFO :: Building subproblem matrices 52/128 (~41%) Elapsed: 1s, Remaining: 1s, Rate: 7.7e+01/s
2026-04-06 16:49:16,792 subsystems 0/1 INFO :: Building subproblem matrices 65/128 (~51%) Elapsed: 1s, Remaining: 1s, Rate: 7.7e+01/s
2026-04-06 16:49:16,961 subsystems 0/1 INFO :: Building subproblem matrices 78/128 (~61%) Elapsed: 1s, Remaining: 1s, Rate: 7.7e+01/s
2026-04-06 16:49:17,126 subsystems 0/1 INFO :: Building subproblem matrices 91/128 (~71%) Elapsed: 1s, Remaining: 0s, Rate: 7.7e+01/s
2026-04-06 16:49:17,298 subsystems 0/1 INFO :: Building subproblem matrices 104/128 (~81%) Elapsed: 1s, Remaining: 0s, Rate: 7.7e+01/s
2026-04-06 16:49:17,466 subsystems 0/1 INFO :: Building subproblem matrices 117/128 (~91%) Elapsed: 2s, Remaining: 0s, Rate: 7.7e+01/s
2026-04-06 16:49:17,608 subsystems 0/1 INFO :: Building subproblem matrices 128/128 (~100%) Elapsed: 2s, Remaining: 0s, Rate: 7.7e+01/s
2026-04-06 16:49:17,633 __main__ 0/1 INFO :: Starting main loop
Traceback (most recent call last):
File "/home/acook59/miniforge3/envs/dedalus3/ACOUSTICS/DNS_Small_Amplitude.py", line 132, in <module>
solver.step(timestep)
~~~~~~~~~~~^^^^^^^^^^
File "/home/acook59/miniforge3/envs/dedalus3/lib/python3.13/site-packages/dedalus/core/solvers.py", line 703, in step
self.timestepper.step(dt, wall_time)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "/home/acook59/miniforge3/envs/dedalus3/lib/python3.13/site-packages/dedalus/core/timesteppers.py", line 587, in step
evaluator.require_coeff_space(state_fields)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "/home/acook59/miniforge3/envs/dedalus3/lib/python3.13/site-packages/dedalus/core/evaluator.py", line 163, in require_coeff_space
self.dist.paths[index-1].decrement(current_fields)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "/home/acook59/miniforge3/envs/dedalus3/lib/python3.13/site-packages/dedalus/core/distributor.py", line 614, in decrement
self.decrement_single(*fields)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/home/acook59/miniforge3/envs/dedalus3/lib/python3.13/site-packages/dedalus/core/distributor.py", line 646, in decrement_single
basis.forward_transform(field, axis, gdata, cdata)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/acook59/miniforge3/envs/dedalus3/lib/python3.13/site-packages/dedalus/core/basis.py", line 926, in forward_transform
super().forward_transform(field, axis, gdata, cdata)
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/acook59/miniforge3/envs/dedalus3/lib/python3.13/site-packages/dedalus/core/basis.py", line 421, in forward_transform
plan.forward(gdata, cdata, data_axis)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/acook59/miniforge3/envs/dedalus3/lib/python3.13/site-packages/dedalus/core/transforms.py", line 322, in forward
self.resize_coeffs(temp, cdata, axis, rescale=1/self.N)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/acook59/miniforge3/envs/dedalus3/lib/python3.13/site-packages/dedalus/core/transforms.py", line 265, in resize_coeffs
np.multiply(data_in[posfreq], rescale, data_out[posfreq])
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
numpy._core._exceptions._UFuncOutputCastingError: Cannot cast ufunc 'multiply' output from dtype('complex128') to dtype('float64') with casting rule 'same_kind'
-Andrew