Skip to main content

compas_lmgc90

Python bindings for LMGC90 discrete element solver.

Installation

Conda

With conda alreay installed, create a conda environment from the yaml file

conda env create -f environment.yml

Then activate it and install the module inside it:

conda activate compas_lmgc90-dev
python -m pip install .

Linux

# Install dependencies
sudo apt update
sudo apt install -y gfortran libopenblas-dev liblapack-dev cmake

# Clone and install
git clone https://github.com/BlockResearchGroup/compas_lmgc90.git
cd compas_lmgc90
conda create -n lmgc90 python=3.12 -y
conda activate lmgc90
conda install -c conda-forge libstdcxx-ng=14
pip install -r requirements-dev.txt
pip install --no-build-isolation -ve .

Note: The libstdcxx-ng=14 is required because the module is compiled with GCC 13.3+ and needs GLIBCXX_3.4.32.

macOS

# Install dependencies
brew install gcc openblas cmake

# Clone and install
git clone https://github.com/BlockResearchGroup/compas_lmgc90.git
cd compas_lmgc90
conda create -n lmgc90 python=3.12 -y
conda activate lmgc90
pip install -r requirements-dev.txt
pip install --no-build-isolation -ve .

Note: CMake will auto-detect Homebrew GCC/gfortran. If detection fails, set compilers manually:

export FC=$(brew --prefix gcc)/bin/gfortran-14
export CC=$(brew --prefix gcc)/bin/gcc-14  
export CXX=$(brew --prefix gcc)/bin/g++-14

Windows

Windows is not currently supported. The package requires Fortran compilers and POSIX-style build tools.

Usage

from compas_dem.models import BlockModel
from compas_dem.templates import ArchTemplate
from compas_lmgc90.solver import Solver

# Create model
template = ArchTemplate(rise=3, span=10, thickness=0.5, depth=0.5, n=20)
model = BlockModel.from_boxes(template.blocks())

# Run simulation
solver = Solver()
solver.geometry_from_model(model)
solver.set_supports(z_threshold=0.4)
solver.preprocess()
solver.run(nb_steps=100)
solver.finalize()

Examples

python temp/dem_of_an_arch.py
python temp/dem_of_a_wall.py
python temp/dem_of_a_dome.py
python temp/contacts.py

Troubleshooting

ImportError: libmatlib.so not found

Make sure you installed the package with pip install -e . in the correct conda environment. The LMGC90 libraries are bundled during installation.

GLIBCXX version error (Linux)

Install the required libstdc++:

conda install -c conda-forge libstdcxx-ng=14

macOS: Compiler not found

If CMake can't find gfortran, manually set the compilers before building:

export FC=$(brew --prefix gcc)/bin/gfortran-14
export CC=$(brew --prefix gcc)/bin/gcc-14
export CXX=$(brew --prefix gcc)/bin/g++-14
pip install --no-build-isolation -ve .

macOS: Compiler not found

If CMake can't find gfortran, manually set the compilers before building:

export FC=$(brew --prefix gcc)/bin/gfortran-14
export CC=$(brew --prefix gcc)/bin/gcc-14
export CXX=$(brew --prefix gcc)/bin/g++-14
pip install --no-build-isolation -ve .

Contributing

Testing a Pull Request

# Fetch the PR branch (replace PR_NUMBER with the actual number)
git fetch upstream pull/PR_NUMBER/head:pr-branch-name
git checkout pr-branch-name

# Build and test
pip install --no-build-isolation -ve .
python temp/contacts.py

Pushing changes to a PR

# Add the PR author's fork as a remote
git remote add author https://github.com/AUTHOR/compas_lmgc90.git

# Push your changes to their branch
git push author branch-name

Note: This requires the PR author to have enabled "Allow edits from maintainers" on their PR.

Release files for compas-lmgc90 0.1.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for compas-lmgc90 0.1.10
File Size Uploaded
compas_lmgc90-0.1.10.tar.gz 255.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for compas-lmgc90 0.1.10
File
compas_lmgc90-0.1.10-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
compas_lmgc90-0.1.10-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
compas_lmgc90-0.1.10-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
compas_lmgc90-0.1.10-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
compas_lmgc90-0.1.10-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
compas_lmgc90-0.1.10-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
compas_lmgc90-0.1.10-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
compas_lmgc90-0.1.10-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
compas_lmgc90-0.1.10-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
compas_lmgc90-0.1.10-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
compas_lmgc90-0.1.10-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
compas_lmgc90-0.1.10-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details
compas_lmgc90-0.1.10-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
compas_lmgc90-0.1.10-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
compas_lmgc90-0.1.10-cp39-cp39-macosx_14_0_arm64.whl CPython 3.9 CPython 3.9 macOS 14.0+ ARM64 Details

Total release size: 182.0 MB

Release files / compas_lmgc90-0.1.10.tar.gz

Download URL compas_lmgc90-0.1.10.tar.gz
Size 255.5 kB
Tags Source
SHA-256 checksum
How to use checksums
812f5fee2074b129145bbd6703890da823dbf200828c0d35654cccdd3b5e02a3
BLAKE2b-256 checksum
How to use checksums
3eb2def6c08595c25fa3dc963fe79e185e1f3896b37b173aefe7a5f3c2c5099f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp313-cp313-win_amd64.whl

Download URL compas_lmgc90-0.1.10-cp313-cp313-win_amd64.whl
Size 17.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
093ca9ba0fbd494755fd22c3b7678cb12ab9530f913da9128b33f8b89ffae9fd
BLAKE2b-256 checksum
How to use checksums
203842d04f80cae70d51bd7e145785c5b8c2211c24c8c73cc2ed79266dac5d9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL compas_lmgc90-0.1.10-cp313-cp313-manylinux_2_28_x86_64.whl
Size 14.5 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f2ac408931b56586a45f70e7f345c03c9cd2308652633930ee25b6da16765e11
BLAKE2b-256 checksum
How to use checksums
6a9dc697d00583ffdc70524e8c3b9009439616ca1eb8bb88f8be58d89745c018
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp313-cp313-macosx_14_0_arm64.whl

Download URL compas_lmgc90-0.1.10-cp313-cp313-macosx_14_0_arm64.whl
Size 4.1 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
66a4c9217d548982cf7fd5f9b5a8e3b06c121286dd44a0ab0296ed7ea9de98c2
BLAKE2b-256 checksum
How to use checksums
61ce24824d5432caaa8878450044e630e5428214752cb56ef78e1f56fa4e6c7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp312-cp312-win_amd64.whl

Download URL compas_lmgc90-0.1.10-cp312-cp312-win_amd64.whl
Size 17.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
7cc0fb8a5e65898a5f3f2274640f029fc5d692b3b93c0659058d58b69bbbf176
BLAKE2b-256 checksum
How to use checksums
b05c01c4a05ac16723c0e049fe8cb8630eabe73969ce5fb04a0a15e38eecc77e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL compas_lmgc90-0.1.10-cp312-cp312-manylinux_2_28_x86_64.whl
Size 14.5 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d3dd1de99d9fc767e2bb3d117113a4cc6ca3ae5df24e8698ec6d7f6b54cfe662
BLAKE2b-256 checksum
How to use checksums
7f312151c0c8aa0275b4dabefc94946f168cd6b33dea36f1406ca9619c4a1beb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp312-cp312-macosx_14_0_arm64.whl

Download URL compas_lmgc90-0.1.10-cp312-cp312-macosx_14_0_arm64.whl
Size 4.1 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
72adb17881521cd8a7963922dc440866303801f0336e65c85d6cf27f847b5c57
BLAKE2b-256 checksum
How to use checksums
2a07c652ecf17266e5ea220674529ae93441b17de45c42fabb00ff5adecee313
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp311-cp311-win_amd64.whl

Download URL compas_lmgc90-0.1.10-cp311-cp311-win_amd64.whl
Size 17.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
94c9aa75199d390f86970a3c5961fa8591e9d49cc6d7eccbc19ddccb9874afda
BLAKE2b-256 checksum
How to use checksums
a01b3d182729a04fb71a330d3c1a063fb544c30a916d336b0fb89bad929a2f10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL compas_lmgc90-0.1.10-cp311-cp311-manylinux_2_28_x86_64.whl
Size 14.5 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0ad96cad88c175016bd5808f8f75903006dd5b1e0c9edbb1b1996616366ddbea
BLAKE2b-256 checksum
How to use checksums
06bdf0c46b23f8ad8ed9b5a485110df7325dc4b7acd9b6bd0576bc7eb54e9089
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp311-cp311-macosx_14_0_arm64.whl

Download URL compas_lmgc90-0.1.10-cp311-cp311-macosx_14_0_arm64.whl
Size 4.1 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
2fcf0f8f373ef8b52dcfabd6b6f9e336889b81750c6274caddf214402f73c329
BLAKE2b-256 checksum
How to use checksums
0c09ab8609dc68a43744d99a712ef42173abab3aca0205e45c73ba7274d9f5d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp310-cp310-win_amd64.whl

Download URL compas_lmgc90-0.1.10-cp310-cp310-win_amd64.whl
Size 17.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
0eb54208333f09e1446cd904bbe5cab0099abf13b571cbdd20c337706cbbb493
BLAKE2b-256 checksum
How to use checksums
c0fc59f2c3b393d81dc7241240758a8257e45940dbde02b1b1a6006eda877605
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL compas_lmgc90-0.1.10-cp310-cp310-manylinux_2_28_x86_64.whl
Size 14.5 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
62d1ff4682b7fbb6b8f019329893ba02982aefa7b1df6f223087c2aeb017df40
BLAKE2b-256 checksum
How to use checksums
673e96465e4b4a74e0c22a51b1c6b48d58559e6e13426b38ed8548a8c8847130
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp310-cp310-macosx_14_0_arm64.whl

Download URL compas_lmgc90-0.1.10-cp310-cp310-macosx_14_0_arm64.whl
Size 4.1 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
67b51f00e703ff7f7eb39d69ea4920fca29cd3ff56a6edd7ba7e1bb553b1bed0
BLAKE2b-256 checksum
How to use checksums
e47c3010c5b9e993ab9b85c532234af3305f256c95006cf22e9c02d183d4d440
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp39-cp39-win_amd64.whl

Download URL compas_lmgc90-0.1.10-cp39-cp39-win_amd64.whl
Size 17.8 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
09465763e2a5ae0b648269973d26753fce735977f386f1bc945d5fd362699986
BLAKE2b-256 checksum
How to use checksums
fd1eb45c5426f2fc662b218dfbc7d013e2f19294b669e9fc2ae10101a1712fc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL compas_lmgc90-0.1.10-cp39-cp39-manylinux_2_28_x86_64.whl
Size 14.5 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5c44c1f533d5efc7ebac3df295c7abbbbbad8085fbc755004d40fe787420b98e
BLAKE2b-256 checksum
How to use checksums
aa3ac9b99fc127f46da752444d71d4eb45f125ecc4f9aefc30e3ffa162f92d7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / compas_lmgc90-0.1.10-cp39-cp39-macosx_14_0_arm64.whl

Download URL compas_lmgc90-0.1.10-cp39-cp39-macosx_14_0_arm64.whl
Size 4.1 MB
Tags CPython 3.9 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
ff3053af530cb4b21ca69b1714780c71396139616d886a4c067b918ee361c562
BLAKE2b-256 checksum
How to use checksums
171ea62578668855130d440063325448f160b0f3d3d01ff971bd18ff82f77cf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.10 This release

16 release files

0.1.8

16 release files

0.1.7

11 release files

0.1.6

3 release files

0.1.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page