The motion of the flying snake Chrysopelea paradisi is characterized by active deformations of the whole body to generate aerodynamic forces necessary for gliding, stabilization, and maneuvering. One active deformation is the expansion of the rib cage to produce a concave ventral surface with the formation of a pair of ventrally-oriented lips. Here, we aim to identify the role of the lips and quantify their effect on the aerodynamic performance of the glider. Our approach is to modify the anatomically accurate cross-section by removing one or both lips and measure the relative change in aerodynamic forces.
Figure: Original and modified geometries of the snake section (oriented at a
The original geometry of the body cross-section of the snake Chrysopelea paradisi is available on FigShare:
Krishnan, Anush; J. Socha, John; P. Vlachos, Pavlos; Barba, Lorena A. (2013): Body cross-section of the flying snake Chrysopelea paradisi. figshare. Dataset. https://doi.org/10.6084/m9.figshare.705877.v1
We used OpenFOAM (version v6
) to compute the flow past cylinders with different cross-sections (original and modified shapes of the gliding snake) at Reynolds number 3.9.1
) and Azure CLI (version 2.3.1
) to deploy resources on Azure and submit containerized jobs to Azure Batch.
conda env create --name=py37-snakelips-3d --file=environment.yml
conda activate py37-snakelips-3d
pip install --no-deps --editable rodney/
Navigate to a simulation directory, e.g., runs/snake3d/both_lips/2k35
:
SNAKELIPS_DIR=$(pwd)
cd runs/snake3d/both_lips/2k35
Copy and update the template credentials.yaml
with your credentials:
cp ${SNAKELIPS_DIR}/misc/template-credentials.yaml config_shipyard/credentials.yaml
# Edit the file with your credentials
Create the geometry of the snake section:
python scripts/create_body_obj.py
Create a directory in your Azure Storage fileshare to save the output of the simulation:
az storage directory create --name snake3d2k35_both --account-name <your-account-name> --share-name fileshare
Deploy resources (2 dedicated CentOS-based H16r instances) on Azure with Batch Shipyard:
export SHIPYARD_CONFIGDIR=config_shipyard
shipyard pool add
Upload input data to the Gluster FS on the compute nodes:
shipyard data ingress
Submit the jobs:
shipyard jobs add
Once the job has completed, delete the compute resources and download the numerical solution output from Azure Storage:
shipyard pool del
mkdir output
az storage file download-batch --source fileshare/snake3d2k35_both --destination output --account-name <your-account-name>
Figure: Mean lift (top) and drag (bottom) coefficients at Reynolds numbers
- Olivier Mesnard, & Lorena A. Barba. (2022). Effect of the lips on the gliding performance of the Chrysopelea paradisi snake with 3D OpenFOAM on Azure (repro-packs).
To reproduce the figures, download the Zenodo archive (6.7 GB), create a conda environment, and execute the misc/process_all.py
script located in the snake-lips-3d-repropacks
folder.
cd snake-lips-3d-repropacks
conda env create --name=py37-snakelips-3d --file=environment.yml
conda activate py37-snakelips-3d
python misc/process_all.py