Giter Club home page Giter Club logo

pymembrane's Introduction

License: MIT

Overview:

PyMembrane is an advanced simulation software crafted to model liquid and elastic membranes. This robust tool captures the essence of these membranes through a coarse-grained representation built on unstructured, triangulated two-dimensional meshes that are positioned within a three-dimensional space.

Technicalities:

  • Programming Language: At its core, PyMembrane is constructed in C++. This ensures rapid and efficient computations even for the most complex simulations.

  • User Interface: The software sports an intuitive Python interface, melding the power of C++ with the simplicity of Python. This unique blend facilitates quick setup, execution, and analysis phases.

  • Software Engineering: PyMembrane is grounded in modern software engineering principles, ensuring a design that is both modular and robust. This modular architecture not only guarantees consistency but also ensures that the software remains easy to maintain.

  • Customization: A distinguishing feature of PyMembrane is its inherent flexibility. The software is built with standardized C++ interfaces, simplifying the addition of new force models or motion equation integrators.

  • Efficiency: The software harnesses widely recognized data structures for its unstructured meshes. This ensures prompt mesh operations and accurate force computations.

Extendibility:

The modular design is the backbone of PyMembrane, promoting straightforward implementation of custom extensions. This ensures that as the research realm evolves, PyMembrane can seamlessly adapt, accommodating new features with ease. This emphasis on adaptability and user-centric design positions PyMembrane as a top-tier choice for membrane simulations.

Getting Started

PyMembrane is not just about powerful computations; it's also about simplicity. With an assortment of templates tailored for typical simulations, bolstered by comprehensive documentation, users can effortlessly configure and initiate research-grade simulations.

Installation

Prerequisites

  • Currently supported on Linux and Mac OSX.
  • Required installations: Python, associated libraries, and suitable compilers.
  • Recommended to use Miniconda.
Steps:
  1. Ensure a C++14 or later standard-supported C/C++ compiler is present.

  2. Clone the repository:

git clone https://github.com/fdmatoz/pymembrane.git
  1. Create a new conda environment:
conda create -n PYMEMB python=3.8 numpy
  1. Activate the environment:
conda activate PYMEMB
  1. Install necessary packages in the conda environment:
conda install -c anaconda cmake
  1. Issues with VTK libraries? PyMembrane utilizes VTK for VTP files, viewable with ParaView. On Linux, use a package manager (e.g., apt) for VTK libraries. For Mac OSX, let PyMembrane fetch and compile VTK locally.

Installing the PyMembrane Python Module

From the pymembrane directory, execute:

python setup.py install

Note: Without Anaconda, you might need root access. The python setup.py install --user option is currently unsupported.

Visualizing Results

Results often use formats like .vtk or .json. Employ visualization tools or the provided scripts for analyzing simulation results. Paraview is recommended for visualizing mesh files and attributes.

Documentation & Community

  • Detailed Documentation: For an in-depth understanding, visit the official documentation.

  • Community Interaction: Engage with the PyMembrane community through forums, chats, or on GitHub.

Quick Start: The Disclination Problem

View the basic example for a hands-on introduction.

Cite Us

About

PyMembrane 2023 by Daniel Matoz Fernandez.

License

Distributed under the MIT license.

pymembrane's People

Contributors

fdmatoz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.