Skip to main content

Collection of sphere packing and meshing algorithms.

Project description


Collection of sphere packing and meshing algorithms.

Installation

pip3 install bola

The c++ code requires the math library Eigen3 to be installed and a dependency of the python gmsh package is libglu. So, you may need to run (debian/ubuntu-based):

sudo apt update
sudo apt -y install libeigen3-dev libglu1

Alternatively, you can follow the steps of the CI.

Examples

Particle size according to bola.psd.GradingCurve (sieve lines):

gc = bola.psd.GradingCurves.fuller(d_min=4., d_max=16)
box = (32.0, 32.0, 32.0)
radii = psd.sample_grading_curve(gc, V=0.5 * np.prod(box))


Initial packing using bola.packing.rsa (random sequential addition)

spheres = bola.packing.rsa(radii, box)


Maximize particle distance using bola.packing.edmd (event-driven molecular-dynamics)

sim = bola.packing.edmd(box, spheres, growth_rate=0.1)
while sim.t() < 10.0:
    sim.process(100 * len(radii))
    sim.synchronize(True)
    print(packing.stats_string(sim))
distant_spheres = sim.spheres()
distant_spheres[:, 3] = radii # new centers, old radii


Mesh via gmsh using bola.mesh

bola.mesh.create(
    box, new_spheres, bola.mesh.GmshOptions(
        mesh_size_matrix=2.0, mesh_size_aggregates=2.0, out="mesh.xdmf")
)


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bola-0.2.0.tar.gz (960.9 kB view details)

Uploaded Source

File details

Details for the file bola-0.2.0.tar.gz.

File metadata

  • Download URL: bola-0.2.0.tar.gz
  • Upload date:
  • Size: 960.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for bola-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0836f4a3ac909c3a1e44f03087fbd1c50c129ebb9645989f2841a66285c7ee25
MD5 a276e8e5485e8eb6a995c33a5f4dc972
BLAKE2b-256 1f40185b25f6be3fb0f888bfc4476004a2647bb07ecf18e66df4ad48fb4bb764

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page