Couche d’accélération cyna#
cyna est la couche d’accélération C++ livree avec pyna. Elle est utilisée
la ou les boucles chaudes Python ne sont pas acceptables : traçage de lignes de
champ, lots de Poincaré, balayages de points fixes, longueur de connexion /
impacts sur paroi, champs de bobines et noyaux de théorie de perturbation
fonctionnelle.
Contrat de build#
pyna._cyna attend un binaire _cyna_ext compile dans le paquet. Les
installations depuis les sources le construisent via xmake ; les roues PyPI
l’incluent. Voir Installation pour la configuration de plateforme et
les drapeaux CUDA.
L’ordre canonique du cache de champ cylindrique est :
BR, BZ, BPhi, R_grid, Z_grid, Phi_grid
Utilisez pyna._cyna.prepare_field_cache() pour convertir un
pyna.fields.VectorFieldCylind ou un ancien dict en tableaux C-contigus.
API de haut niveau et bas niveau#
Preferez les wrappers de haut niveau pour le code applicatif :
pyna.fltetpyna.toroidal.fltpour le traçagepyna.topopour les cartes de Poincaré, cycles, îlots, variétés et reponse FPTpyna.toroidal.coilspour la construction de champs de bobines
N’utilisez pyna._cyna directement qu’aux frontières de bridge, pour les
diagnostics ou lors de l’ecriture d’un nouveau wrapper de haut niveau.