-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 452a1c3
Showing
1,135 changed files
with
474,971 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
#MIT License | ||
# | ||
#Copyright (c) 2023 Daniel Matoz Fernandez | ||
# | ||
#Permission is hereby granted, free of charge, to any person obtaining a copy | ||
#of this software and associated documentation files (the "Software"), to deal | ||
#in the Software without restriction, including without limitation the rights | ||
#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
#copies of the Software, and to permit persons to whom the Software is | ||
#furnished to do so, subject to the following conditions: | ||
# | ||
#The above copyright notice and this permission notice shall be included in all | ||
#copies or substantial portions of the Software. | ||
# | ||
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
#SOFTWARE. | ||
|
||
# Pymember Documentation Deployer | ||
# Date: 2023-08-12 | ||
name: Deploy Documentation | ||
|
||
|
||
# Controls when the workflow will run | ||
on: | ||
# Triggers the workflow on push or pull request events but only for the "main" branch | ||
push: | ||
branches: [ "main" ] | ||
pull_request: | ||
branches: [ "main" ] | ||
|
||
# Allows you to run this workflow manually from the Actions tab | ||
workflow_dispatch: | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.9 | ||
|
||
- name: Install dependencies | ||
run: | | ||
sudo apt install -y doxygen | ||
python -m pip install --upgrade pip | ||
pip install Sphinx pydata-sphinx-theme | ||
pip install sphinx-design | ||
pip install sphinxcontrib-bibtex | ||
pip install breathe exhale | ||
pip install numpydoc | ||
- name: Build documentation | ||
run: | | ||
sphinx-build -b html ./docs ./docs/_build/html | ||
- name: Deploy to GitHub Pages | ||
uses: peaceiris/actions-gh-pages@v3 | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: ./docs/_build/html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
#Edited 13-08-2023 | ||
CMakeCache.txt | ||
CMakeFiles | ||
Makefile | ||
cmake_install.cmake | ||
.DS_Store | ||
*.so | ||
*.pyd | ||
*.dll | ||
*.sln | ||
*.sdf | ||
*.opensdf | ||
*.vcxproj | ||
*.filters | ||
example.dir | ||
Win32 | ||
x64 | ||
Release | ||
Debug | ||
.vs | ||
CTestTestfile.cmake | ||
Testing | ||
autogen | ||
MANIFEST | ||
/.ninja_* | ||
/*.ninja | ||
/docs/.build | ||
*.py[co] | ||
*.egg-info | ||
*~ | ||
.*.swp | ||
.DS_Store | ||
/dist | ||
/build | ||
/cmake/ | ||
.cache/ | ||
sosize-*.txt | ||
pybind11Config*.cmake | ||
pybind11Targets.cmake | ||
#cuda | ||
*.i | ||
*.ii | ||
*.gpu | ||
*.ptx | ||
*.cubin | ||
*.fatbin | ||
# Prerequisites | ||
*.d | ||
|
||
# Compiled Object files | ||
*.slo | ||
*.lo | ||
*.o | ||
*.obj | ||
|
||
# Precompiled Headers | ||
*.gch | ||
*.pch | ||
|
||
# Compiled Dynamic libraries | ||
*.so | ||
*.dylib | ||
*.dll | ||
|
||
# Fortran module files | ||
*.mod | ||
*.smod | ||
|
||
# Compiled Static libraries | ||
*.lai | ||
*.la | ||
*.a | ||
*.lib | ||
|
||
# Executables | ||
*.exe | ||
*.out | ||
*.app | ||
|
||
# vscode | ||
.vscode/ | ||
pymembrane/cppmodule/.vscode/ | ||
pymembrane/cppmodule/src/.vscode/ | ||
|
||
# vscode | ||
.history/ | ||
|
||
# python | ||
__pycache__/ | ||
*.pyc | ||
pymembrane/__pycache__/ | ||
pymembrane/cppmodule/__pycache__/ | ||
.ipynb_checkpoints/ | ||
|
||
|
||
# vtk | ||
*.vtk | ||
*.vtp | ||
*.vtu | ||
|
||
# vscode | ||
pymembrane/cppmodule/build/* | ||
|
||
# exception to the rule | ||
!pymembrane/cppmodule/build/.gitkeep | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2023 Daniel Matoz Fernandez | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) | ||
|
||
<p align="center"> | ||
<img height="300" src="docs/_static/logo-github.png"> | ||
</p> | ||
|
||
### 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](https://docs.conda.io/en/latest/miniconda.html). | ||
|
||
##### Steps: | ||
|
||
1. Ensure a C++14 or later standard-supported C/C++ compiler is present. | ||
|
||
2. Clone the repository: | ||
```bash | ||
git clone https://github.com/fdmatoz/pymembrane.git | ||
``` | ||
|
||
3. Create a new conda environment: | ||
```bash | ||
conda create -n PYMEMB python=3.8 numpy | ||
``` | ||
|
||
3. Activate the environment: | ||
```bash | ||
conda activate PYMEMB | ||
``` | ||
|
||
5. Install necessary packages in the conda environment: | ||
```bash | ||
conda install -c anaconda cmake | ||
``` | ||
|
||
6. Issues with VTK libraries? PyMembrane utilizes [VTK](https://vtk.org/download/) for VTP files, viewable with [ParaView](https://www.paraview.org/). 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: | ||
```bash | ||
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](https://www.paraview.org/) is recommended for visualizing mesh files and attributes. | ||
|
||
# Documentation & Community | ||
|
||
- **Detailed Documentation**: For an in-depth understanding, visit the [official documentation](https://fdmatoz.github.io/PyMembrane/). | ||
|
||
- **Community Interaction**: Engage with the PyMembrane community through forums, chats, or on GitHub. | ||
|
||
## Quick Start: The Disclination Problem | ||
|
||
View the [basic example](./docs/Examples/desclination.md) for a hands-on introduction. | ||
|
||
# Cite Us | ||
|
||
|
||
|
||
# About | ||
|
||
PyMembrane 2023 by [Daniel Matoz Fernandez](http://www.danielmatoz.com). | ||
|
||
# License | ||
|
||
Distributed under the [MIT license](LICENSE.txt). | ||
|
Oops, something went wrong.