Skip to main content

Membrane Dynamics in 3D using Discrete Differential Geometry (Mem3DG)

Testing and release Zenodo PyPI Conda-forge

Mem3DG is a flexible software package to model the membrane and its dynamics using unstructured meshes. This work is currently under heavy development, please star this repository to follow along!

Installation

The core of Mem3DG is written in C++ with functions exposed to a Python interface using pybind11. The python interface and helper utilities for visualization and analysis are bundled together into a python package called pymem3dg. pymem3dg can be obtained using pip (pip install pymem3dg) or conda (conda install pymem3dg) from their respective repositories. For the majority of users who wish to develop models, this is the recommended installation procedure.

Dependencies

We acknowledge the use of helpful external libraries including:

While the majority of these libraries are either included in this repository

Building for development

For advanced users who seek to modify the code, develop simulations in C++ directly, or produce/link to Mem3DG shared libraries, Mem3DG can be configured and built using CMake. After cloning the repository, initialize submodules and their dependencies, and follow the standard CMake out-of-source configuration and build procedures.

git submodule update --init --recursive
mkdir build
cd build
cmake -DWITH_NETCDF=ON -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config Release

There are several CMake options which you can configure. Further options can be discovered by inspecting the CMakeLists.txt or using a utility like ccmake or cmake -LAH. These options can be passed during the configuration step (e.g., -DWITH_NETCDF=ON).

option(BUILD_PYMEM3DG "Build the python extensions?" ON)
option(WITH_NETCDF "Build with NetCDF (binary trajectory output)?" ON)
option(BUILD_MEM3DG_DOCS "Configure documentation" OFF)
option(M3DG_GET_OWN_EIGEN "Download own Eigen" ON)
option(M3DG_GET_OWN_PYBIND11 "Download own pybind11" ON)
option(WITH_LIBUNWIND "Link libunwind for stack traces" OFF)
option(WITH_OPENMP "Build with OpenMP support" OFF)
option(LINK_PROFILER "Link profiler gperftools" OFF)
option(MEM3DG_PEDANTIC "Be extremely pedantic while compiling" OFF)

Building pymem3dg

While the pymem3dg extension module can be built directly with CMake, packaging and installing in a matter which conforms with guidelines from the Python packaging authority is best done using python tooling. We use scikit-build-core to bridge between CMake and the Python build system. Typical Python metadata and details are specified in pyproject.toml.

pymem3dg can be built and installed by using pip from the root of this repository.

git submodule update --init --recursive
pip install -v .

Extra dependencies for building the documentation and tests can be installed as well pip install -v .[docs,tests]. Other options can be passed to CMake by modifying config-settings in pip. pip install . --config-settings=cmake.build-type="Debug"

Acknowledging your use of Mem3DG

Mem3DG is developed by Cuncheng Zhu, Christopher T. Lee, with contributions from others. Development of Mem3DG is funded in part by AFOSR MURI FA9550-18-1-0051, and a Hartwell Foundation Postdoctoral Fellowship.

Metadata

Release files for pymem3dg 0.0.7

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

Source distribution (sdist)

Source distribution for pymem3dg 0.0.7
File Size Uploaded Provenance
pymem3dg-0.0.7.tar.gz 32.2 MB Without provenance Details

Release files / pymem3dg-0.0.7.tar.gz

Download URL pymem3dg-0.0.7.tar.gz
Size 32.2 MB
Tags Source
SHA-256 checksum
How to use checksums
f49e5d4eb4f836fae50763f85ce7d7c088bd7a64ce7a8392a0501cccd9d7966b
BLAKE2b-256 checksum
How to use checksums
6c9b2b8bede4d6340fe6d6a8910c178925d43c75d5d5ed47a9a461f9bb537f2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Security for pymem3dg 0.0.7

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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