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(...)
).