Skip to content

Structural analysis suite for construction sequencing

License

Notifications You must be signed in to change notification settings

yijiangh/conmech

Repository files navigation

conmech

Travis CI Appveyor CI Documentation Status License MIT PyPI - Python Version Coveralls

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

python -m pip install pyconmech --user
# or python3 if default python is 2.x (OSX or Linux)
# try the following flags when updating: --user --upgrade --force

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 -m pip install .
# or python3 if default python is 2.x (OSX or Linux)
# try the following flags when updating: --user --upgrade --force

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 .