Frequently Asked Questions#
What doesn’t pystella
do for me?#
pystella
cannot ensure that kernels are
properly ordered (i.e., with regard to data dependence).
For example, in
wave_equation.py,
the Laplacian of f
has to be computed by derivs
before
lap_f
is read by stepper
.
pystella
only creates kernels that do exactly what you
ask for (and nothing more).
What domain dimension does pystella
support?#
Currently, three dimensions or fewer are supported.
While pystella
was designed for 3-D problems, one can, for example, implement
a 2-D problem by simply setting one axis to have length 1 and halo padding 0
(to remove needless halo layers), e.g.,
grid_shape = (1, 4096, 4096)
and halo_shape = (0, 2, 2)
.
Be warned that some implemented functionality may not run optimally
in this case, and that 1- and 2-D domains have not been thoroughly tested.
Where can I find more examples?#
Aside from the complete examples implementing the
wave equation
and simulating gravitational waves from
scalar-field preheating,
pystella
’s tests
provide another source of examples.
Common gotchas/pitfalls#
loopy.diagnostic.LoopyError: could not determine type of '___'
You likely either forgot to pass an array argument when calling a kernel or to fix a value at kernel creation (i.e., by passing
fixed_parameters=dict(...)
).