Skip to main content

py bindings for conmech: a C++ lib for 3D frame elastis deformation analysis.

Project description

conmech

conmech is an open-source library to provide efficient stiffness checkers for architectural construction sequencing. It’s written in C++11 and wrapped friendly with Python via pybind11.

Installation

pip install pyconmech

Demo

(A cool gif should come here :satisfied:)

For examples of interactive usage in python (analysis for complete or partial structure in a construction sequence), see stiffness_checker_test.ipynb.

Build from source

Build python bindings

Prerequisites

conmech depends on Eigen for linear algebra and rapidjson for json (de-)serialization, both of which are shipped with conmech.

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

On Unix (Linux, OS X)

  • A compiler with C++11 support

  • CMake >= 2.8.12

On Windows

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

  • CMake >= 3.1

conmech’s python bindings are built with a CMake-based build system via pybind11. It is recommended (especially for Windows users) to test the environment with the cmake_example for pybind11 before proceeding to build conmech.

Then, clone this repository and pip install. Note the --recursive option which is needed for cloning the submodules:

git clone --recursive https://github.com/yijiangh/conmech
pip install ./conmech
# try with '--user' if you encountered a sudo problem

Or for developers:

git clone --recursive https://github.com/yijiangh/conmech
cd conmech
python setup.py sdist
pip install --verbose dist/*.tar.gz

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.

Build C++ code

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

Or on Windows, replace the last line with

cmake --build .

Changelog

TODO

  • Even when applying the lumped nodal loads in Karamba, the results still look different to the ones from conmech. See developer_notes/karamba_comparision for more details.

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

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

pyconmech-0.3.1.tar.gz (1.3 MB view hashes)

Uploaded Source

Supported by

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