Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
581672c
add cmake and build structure
skim0119 May 25, 2024
d2985be
Merge pull request #389 from skim0119/elasticapp-integration
armantekinalp May 25, 2024
3a1f106
update: gitignore file to include c++ code
skim0119 May 25, 2024
558cabc
included cmakelists
skim0119 May 28, 2024
7a1fe25
Switch to scikit_build_core, remove setup.py
ankith26 May 30, 2024
060f94f
Add basic pybind11 example with meson buildsystem
ankith26 May 30, 2024
a587b65
Start integrating dependencies
ankith26 Jun 9, 2024
8c36584
elasticapp _batch_matmul ports with benchmarking
ankith26 Jun 13, 2024
3e05a9e
add math utility libraries
skim0119 Jun 14, 2024
b3221cd
add blaze traits
skim0119 Jun 14, 2024
ecedea5
Wrap and test everything in BlazeLinearAlgebra.hpp
ankith26 Jun 23, 2024
d612817
python-binding template for vector/matrix/tensor
skim0119 Jun 24, 2024
fb7f32d
include SO3 backend implementation
skim0119 Jun 26, 2024
f66d050
Fix Utilities/Math/Python issues and make it build
ankith26 Jul 5, 2024
3737d5c
Add elasticapp documentation
ankith26 Jul 7, 2024
4e7a04b
port linalg to use Utils/Math/Python objects
ankith26 Jul 7, 2024
f9d4d00
Update README.md
skim0119 Jul 10, 2024
7d45e74
Add batchcross benchmarking
ankith26 Jul 10, 2024
f1eaef8
Setup optimization blaze defines globally
ankith26 Jul 10, 2024
a61a445
revert: __str__ for blaze objects. Other print-related methods are ad…
skim0119 Jul 11, 2024
2e34cdd
feat: Add bound check during blaze setter
skim0119 Jul 11, 2024
99ff10f
Add default simulator frames definition
skim0119 Jul 11, 2024
d03eb97
binding: elastica tags
skim0119 Jul 11, 2024
23cf020
add elastica::tags and system-type structure
skim0119 Jul 11, 2024
9802213
files: CosseratRod system
skim0119 Jul 11, 2024
4bd8a3a
Add backend CI
ankith26 Jul 11, 2024
47952a7
file: Add MakeString
skim0119 Jul 12, 2024
bcb7ad8
Merge branch 'ankith26-gsoc' of https://github.com/ankith26/PyElastic…
skim0119 Jul 12, 2024
d005f62
remove pretty print for now
skim0119 Jul 12, 2024
5b28ec7
files: add Rod-related traits and include trees
skim0119 Jul 12, 2024
b42fab3
files: add system states
skim0119 Jul 12, 2024
ee2fa43
files: common features for system
skim0119 Jul 12, 2024
b393ab0
Update elasticapp.yml
skim0119 Jul 12, 2024
946459a
files: add Materials
skim0119 Jul 12, 2024
1252253
Update elasticapp.yml
skim0119 Jul 12, 2024
54a2afa
files: block concepts
skim0119 Jul 12, 2024
ed8124e
files: add system configuration
skim0119 Jul 12, 2024
7c43877
pybind: add PyTags
skim0119 Jul 12, 2024
ca9025f
remove ::elastica::Time temporarily to detach from Time madules
skim0119 Jul 12, 2024
575997c
files: add error handling
skim0119 Jul 12, 2024
e182636
files: module settings
skim0119 Jul 13, 2024
1bfb5d4
files: block headers
skim0119 Jul 13, 2024
63b1c27
Handle brigand in buildscript instead of wrap
ankith26 Jul 13, 2024
d92a09c
files: necessary utils
skim0119 Jul 13, 2024
96f67a3
Merge branch 'ankith26-gsoc' of https://github.com/ankith26/PyElastic…
skim0119 Jul 13, 2024
acf83d4
files: component helpers and names
skim0119 Jul 13, 2024
cf55e22
files: add missing math utility files
skim0119 Jul 13, 2024
818de4d
files: add missing utils
skim0119 Jul 13, 2024
8609208
Update BindCosseratRod.cpp
skim0119 Jul 13, 2024
8da7f85
add rod construction script
skim0119 Jul 13, 2024
5da6a9e
Implement inv_rotate in elasticapp._rotations
ankith26 Jul 14, 2024
25c6237
Port more inv_rotate tests
ankith26 Jul 14, 2024
37e5860
Implement rotate in elasticapp._rotations
ankith26 Jul 15, 2024
a984130
fix: remove pretty type
skim0119 Jul 20, 2024
177ac70
Merge branch 'ankith26-gsoc' of https://github.com/ankith26/PyElastic…
skim0119 Jul 20, 2024
17ac94e
Start work the CosseratRod bindings
ankith26 Jul 21, 2024
6c47988
Fix_PyCosseratRods module compilation
ankith26 Aug 4, 2024
579c700
Add a basic test for CosseratRod attributes
ankith26 Aug 4, 2024
151a260
add auto-import logic to elasticapp
ankith26 Aug 4, 2024
23ef432
remove twisted rod and old-damping model
skim0119 Aug 8, 2024
187c20e
add pretty type for pybind
skim0119 Aug 8, 2024
ee41753
add clang-format
skim0119 Aug 8, 2024
b3cc4f8
pretty type pybind getters and variable names
skim0119 Aug 8, 2024
a674997
fix formatting
skim0119 Aug 8, 2024
6a8f2a1
Fix _PyTags link issues
ankith26 Aug 10, 2024
70a073b
Remove failing test, that isn't neeeded anymore
ankith26 Aug 10, 2024
1409988
Add _CosseratRodBlock attributes testing
ankith26 Aug 11, 2024
dd2bac1
Remove all unneeded cmake code
ankith26 Aug 21, 2024
2dfc94e
Added some more doc comments
ankith26 Aug 25, 2024
85ddf84
Merge pull request #391 from ankith26/ankith26-gsoc
skim0119 Sep 22, 2024
f5c6e56
Merge remote-tracking branch 'origin/update-0.3.3' into elasticapp-in…
skim0119 Jul 25, 2025
b93a75d
remove unused wrap scripts for meson
skim0119 Jul 27, 2025
05e02d6
fix sleef version 3.8: blaze seems incompatible with 3.9
skim0119 Jul 27, 2025
c54d1a4
Merge branch 'update-v1' into elasticapp-integration
skim0119 Dec 19, 2025
5230cd8
simplifies code to include for release version
skim0119 Dec 22, 2025
2363bd9
tests: add some basic behavior for block memory structure
skim0119 Dec 22, 2025
b0535c5
update version
skim0119 Dec 22, 2025
1dcb1ad
add simplified block behavior headers
skim0119 Dec 22, 2025
bd05325
add binding
skim0119 Dec 22, 2025
db8d0d3
impl: block variable getter
skim0119 Dec 22, 2025
336d02b
add macros for installation and test
skim0119 Dec 22, 2025
aa6b442
feat: implement ghost node handling and reset functionality in BlockR…
skim0119 Dec 22, 2025
92b826b
Merge remote-tracking branch 'origin/refactor/symplectic' into elasti…
skim0119 Dec 22, 2025
4a330d2
Implement operation for cosserat_equations and necessary Eigen kernels
skim0119 Dec 23, 2025
d135865
SIMD and threading support options
skim0119 Dec 23, 2025
7df60c6
feat: enhance BlockRodSystem with reshaping
skim0119 Dec 23, 2025
5840da6
move out elasticapp cores
skim0119 Dec 24, 2025
dca80c0
Merge remote-tracking branch 'origin/update-v1' into elasticapp-integ…
skim0119 Dec 24, 2025
69fd414
Remove outdated
skim0119 Dec 24, 2025
18f5399
feat: enhance BlockRodSystem and MemoryBlockCosseratRod functionality
skim0119 Dec 24, 2025
46b7105
refactor: optimize Cosserat rod computations and enhance threading su…
skim0119 Dec 24, 2025
d6223f3
feat: add Timoshenko beam simulation example
skim0119 Dec 24, 2025
b89405d
feat: add benchmarking scripts for memory block integrity and PDE per…
skim0119 Dec 24, 2025
f8ec94d
refactor: simplify matrix type definitions and improve indexing consi…
skim0119 Dec 24, 2025
1d0d6c5
feat: enhance Block class with ghost node handling and input validation
skim0119 Dec 24, 2025
b79b1f6
feat: extend BlockRodSystem API with strain computation and data view…
skim0119 Dec 24, 2025
4596223
refactor: update Makefile and CMakeLists.txt for improved build confi…
skim0119 Dec 24, 2025
0841441
docs: update README
skim0119 Dec 24, 2025
70aada6
Merge branch 'update-v1' into elasticapp-integration
skim0119 Dec 24, 2025
7ad53de
Merge branch 'update-v1' into elasticapp-integration
skim0119 Dec 26, 2025
e1b3c4d
fix action for cpp build check
skim0119 Dec 26, 2025
2aa000b
fix test: disable opemmp for ghost reset
skim0119 Dec 26, 2025
4eb4c51
remove catch2 for installation
skim0119 Dec 26, 2025
feb86f4
add cache path for elasticapp installation
skim0119 Dec 26, 2025
107e1bc
include CTest in github action
skim0119 Dec 26, 2025
965ac21
add flag for removing GIL
skim0119 Dec 27, 2025
8f3e0dc
remove threading flag: openmp is now required
skim0119 Dec 27, 2025
04ddbcf
optimize: reduce dummy variable creation at each iteration
skim0119 Dec 27, 2025
0b4d8ae
fix: block ghost reset with provided method
skim0119 Dec 27, 2025
2ce0f56
simplify loop
skim0119 Dec 27, 2025
68e8f61
reduce variadic error message
skim0119 Dec 28, 2025
80d7c1b
remove old ignore lists
skim0119 Dec 29, 2025
9a20a74
add python-api of collision modules
skim0119 Dec 29, 2025
7dc6800
add cpp binding
skim0119 Dec 29, 2025
d0ddd5d
rebuild process include removing previous build
skim0119 Dec 29, 2025
2f232c6
add main collision system class
skim0119 Dec 29, 2025
fff92e6
add collision in build
skim0119 Dec 29, 2025
198e465
add commonly use node-to-element mapping routine
skim0119 Dec 29, 2025
bd1e978
use free-function math for elem-to-node conversion for radius
skim0119 Dec 29, 2025
6aa5438
fix: compilation issue
skim0119 Dec 29, 2025
897a34e
add crtp concepts
skim0119 Dec 29, 2025
5dcb641
unittest for collision module
skim0119 Dec 29, 2025
5332b60
add linear spring dashpot implementation
skim0119 Dec 29, 2025
34bbb0e
add no-interaction physics model for dummy or testing
skim0119 Dec 29, 2025
b182fa5
implement collision physics models: add NoInteraction and LinearSprin…
skim0119 Dec 29, 2025
4caa607
fix namespaces: compilation issues
skim0119 Dec 29, 2025
33ac388
add fine-detection routine
skim0119 Dec 29, 2025
a1f93f3
add coarse grid detection
skim0119 Dec 29, 2025
b1546c9
add batching methods
skim0119 Dec 29, 2025
9a0b27a
uncomment api for collision module
skim0119 Dec 29, 2025
71cdbd7
fix build: correct namespace from upstream redefinitions
skim0119 Dec 30, 2025
e21b5e4
update unittest for batch cache
skim0119 Dec 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .github/workflows/elasticapp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: elasticapp (Elastica++ based backend) tests

# trigger run only on changes to the backend folder.
on:
push:
paths:
- backend/**
pull_request:
paths:
- backend/**

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ["3.11"] #, "3.12"]
os: [ubuntu-latest] # , macos-latest]
include:
- os: ubuntu-latest
path: ~/.cache/pip
defaults:
run:
shell: bash

steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
uv-version: latest
- name: Compile OpenMP
env:
OMP_NUM_THREADS: 2
run: |
sudo apt-get update; sudo apt-get install -y libomp5 libomp-dev
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Set up cache
uses: actions/cache@v5
with:
path: ${{ matrix.path }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}-${{ hashFiles('uv.lock') }}
restore-keys: |
${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}-${{ hashFiles('uv.lock') }}
${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}

- name: Install PyElastica and dependencies
run: |
make install-dev-deps PYTHON_VERSION=${{ matrix.python-version }}
uv cache prune --ci

- name: Run elasticapp tests
run: |
source .venv/bin/activate
cd backend
make clean-build
make test
# pytest backend/tests/py
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
run: python -c "import sys; print(sys.version)"
# Set up cache
- name: Set up cache
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: ${{ matrix.path }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}-${{ hashFiles('uv.lock') }}
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ sample_prog.py

# txt files
*.txt
!CMakelists.txt

# movie or video file formats
*.mp4
Expand All @@ -241,3 +242,6 @@ outcmaes/*

# csv files
*.csv

# ./backend dependencies
deps
10 changes: 5 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ pre-commit-install:
.PHONY: black
black:
uv run black --version
uv run black --config pyproject.toml elastica tests examples
uv run black --config pyproject.toml elastica tests examples backend

.PHONY: black-check
black-check:
Expand All @@ -54,7 +54,7 @@ autoflake-check:
.PHONY: autoflake-format
autoflake-format:
uv run autoflake --version
uv run autoflake --in-place $(AUTOFLAKE_ARGS) elastica tests examples
uv run autoflake --in-place $(AUTOFLAKE_ARGS) elastica tests examples backend

.PHONY: format-codestyle
format-codestyle: black autoflake-format
Expand All @@ -71,15 +71,15 @@ mypy:

.PHONY: test
test:
uv run pytest -c pyproject.toml
uv run pytest -c pyproject.toml tests

.PHONY: test_coverage
test_coverage:
NUMBA_DISABLE_JIT=1 uv run pytest --cov=elastica -c pyproject.toml
NUMBA_DISABLE_JIT=1 uv run pytest --cov=elastica -c pyproject.toml tests

.PHONY: test_coverage_xml
test_coverage_xml:
NUMBA_DISABLE_JIT=1 uv run pytest --cov=elastica --cov-report=xml -c pyproject.toml
NUMBA_DISABLE_JIT=1 uv run pytest --cov=elastica --cov-report=xml -c pyproject.toml tests

.PHONY: check-codestyle
check-codestyle: black-check flake8 autoflake-check
Expand Down
17 changes: 17 additions & 0 deletions backend/.clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
# We'll use defaults from the Google style.
# See http://clang.llvm.org/docs/ClangFormat.html for help.
Language: Cpp
BasedOnStyle: Google
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
PointerAlignment: Left
DerivePointerAlignment: false
FixNamespaceComments: true
IncludeCategories:
- Regex: "^<.*"
Priority: 1
- Regex: ".*"
Priority: 2
NamespaceIndentation: All
SortIncludes: false
12 changes: 12 additions & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps

Loading
Loading