Skip to main content

conmech

conmech is a stiffness checker that performs elastic deformation analysis for 3D frame structures. It is designed for construction sequencing applications, which involves testing the partially assembled structure (subset of element permutation) many times.

conmech is written in C++11 and wrapped friendly with Python via pybind11.

Installation

pip install pyconmech

Build from source

Build python bindings

Prerequisites

The following dependencies come from pybind11 for building the python wrappers.

On Unix (Linux, OS X)

  • A compiler with C++11 support

  • CMake >= 3.1

On Windows

  • Visual Studio 2015 (required for all Python versions, see notes below)

  • CMake >= 3.1

Then, clone this repository and pip install.

cd conmech
python pip install .
# or python3

With the setup.py file included in the base folder, the pip install command will invoke CMake and build the pybind11 module as specified in CMakeLists.txt.

Note:

conmech’s python bindings are built with a CMake-based build system via pybind11. Take a look at cmake_example for pybind11 if you want to learn more about this.

conmech depends on Eigen for linear algebra and nlohmann::json for json (de-)serialization, both of which are handled automatically by cmake for downloading.

Build C++ code

mkdir build
cd build
cmake ..
make -j2 # Unix

Or on Windows, replace the last line with

cmake --build .

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.4.3

Changed

  • Changed -DCONMECH_BUILD_TESTS=OFF in setup_cmake_utils.py to disable cpp test building in python setup.py build

0.4.0

Added

  • Added StiffnessChecker class method, directly construct from frame data, without saving data to a temp json

  • Added some initial cpp unit tests, test data fed in by CMake and tests organized by Catch2

Changed

  • Changed rapidjson to nlohmann::json

Removed

  • Removed the Frame data structure in Stiffness checker’s cpp backend

  • Removed all the git submodule and used CMake download external instead

Fixed

  • Fixed the memory leak caused by the smart pointer cycle dependency in Frame

0.3.1

Added

  • Added unit tests for std::throw in parsing material properties

0.3.0

Changed

  • Changed try/catch in the C++ file parsing to std::throw

0.2.0

Changed

  • The original stiffness_checker extension module is wrapper as _stiffness_checker. All the cpp modules are wrapper under a top-level python classes/functions, to give more flexibility.

  • API change: stiffness_checker class is renamed to StiffnessChecker to conform

    to the class naming convention. All other APIs within this class are left unchanged.

  • Delete radius entry from material_properties.

Added

  • documentation is hosted on readthedocs!

  • add grasshopper examples - parse/save files, karamba comparsion, solve/get result in GH via ghpython-remote

  • supports material / cross sectional properties for each element.

  • supports uniformly distributed load

  • add gravity magnitude and direction

0.1.0

Initial version

Release files for pyconmech 0.4.3

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

Source distribution (sdist)

Source distribution for pyconmech 0.4.3
File Size Uploaded
pyconmech-0.4.3.tar.gz 688.6 kB Details

Release files / pyconmech-0.4.3.tar.gz

Download URL pyconmech-0.4.3.tar.gz
Size 688.6 kB
Tags Source
SHA-256 checksum
How to use checksums
102e164d6ded9d28100de3e9990cadf96748701362f5f5e1f89e060dd1e9a8b0
BLAKE2b-256 checksum
How to use checksums
cc31df1b185e2aca4b0c542ee451831f89bbe6c9628bae9d65d96e1f131c31bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.10

Release history Release notifications | RSS feed

0.6.0

1 release file

0.5.0

1 release file

This release

0.4.3 This release

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.2

1 release file

0.1.1

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