Files
stroid/utils
Emily Boudreaux a5905e5fed feat(topology): vacuum coordinate and multi block
Two major changes in this version. First stroid now embeds a vacuum coordinate as part of its StroidMesh file (this is a packed set of mfem meshes and GridFunction). This is a logical coordinate from 0 at the stellar surface to 1 at the mesh surface / compactified infinity which can be used by consumers to much more stablly infer position in the vacuum region. Second, there is a new topology backend, multi_block, which has been made the default. See the readme for more information but the basic jist is that multi_block addes 6 transition blocks onto the edge of the core domain. This allows for a much more well conditioned transition from the internal cartesien region to the external spherical region. The mesh conditioning improves by roughly a factor of 1000 for the same refinement level when compared to the legacy topology. The legacy topology is maintained as a option if core_mapping is set to spherified in the config.
2026-09-09 08:11:08 -04:00
..

Wheel Generation

This directory contains scripts to generate precompiled python wheels for GridFire

Notes

  • MacOS wheels can only be generated on macos
  • aarch64 wheels can only be generated on aarch64 machines
  • x86_64 wheels can only be generated on x86_64 machines
  • linux wheels can be generated on any linux machine, but the target architecture must match the machine architecture
  • Running each script will take a very long time (could be upwards of half of a day depending on your system) and will require roughly 2GB of disk space
  • When generating MacOS wheels, you must have all the correct versions of python installed with pyenv. Run the script utils/wheels/installPyEnvVersions.sh to install the correct versions of python.

Usage

Once you know you are on the correct machine, run the script for your desired architecture and operating system. For example, to generate a macos x86_64 wheel, run:

./build-wheels-macos-aarch64.sh https://github.com/4D-STAR/GridFire

Once you have all the wheels generated (which will likely require multiple systems), copy all the wheels into a single directory (lets assume its called wheels and in the root of the directory) and then run (from the root of the repository):

python -m pip install --upgrade build
python -m build --sdist --outdir wheels
twine upload wheels/*

Thie will also take a while (it needs to upload all the wheels to PyPI) but will result in all the wheels being uploaded to PyPI.