This repository contains simulation code for studying the dynamics of bubbles that are formed when a jet hits a liquid pool. The code uses the Basilisk framework with custom implementations for viscoelastic fluid dynamics using the log-conformation method as described in Viscoelastic3D repository.
The project investigates how viscoelastic behavior influences bubble dynamics that are formed when a jet hits a liquid pool.
- Two-phase flow interactions with viscoelastic fluids
- Log-conformation method for numerical stability at high Weissenberg numbers
- Axisymmetric implementations
- Surface tension and interface tracking using Volume of Fluid (VoF) method
- Two-Phase Viscoelastic Solver: Implementation of viscoelastic fluid dynamics with density/viscosity/elastic property interpolation between phases
- Log-Conformation Method: Advanced numerical approach for handling high Weissenberg number problems
- Scalar-Based Implementation: Both 2D (+axisymmetric) and 3D versions available
- Surface Tension: Brackbill method implementation for interface forces
- Adaptive Mesh Refinement: Efficient grid management for interface tracking
- Basilisk C (automatically installed by setup script)
- C compiler (gcc/clang)
- Make build system
- MPI for parallel execution (optional)
- Clone the repository:
git clone https://github.com/comphy-lab/BubblesOnString.git
cd BubblesOnString
- Install Basilisk and set up the environment:
./reset_install_requirements.sh
The installation script will:
- Check for and install Basilisk if not present
- Configure environment variables
- Create a
.project_config
file with proper paths
For a clean reinstall:
./reset_install_requirements.sh --hard
-
basilisk/src/
: Core Basilisk codebase with CFD solversnavier-stokes/
: Navier-Stokes equation solversvof.h
: Volume of Fluid implementation- Other core modules for CFD
-
src-local/
: Custom implementations for this projecttwo-phaseVE.h
: Two-phase viscoelastic flow solverlog-conform-viscoelastic-scalar-2D.h
: 2D log-conformation solverlog-conform-viscoelastic-scalar-3D.h
: 3D log-conformation solvereigen_decomposition.h
: Matrix operations for stress tensor calculations
-
testCases/
: Example simulations and validation casesjetOnPool.c
: Jet impact on pool surface simulation- Various test configurations
- Navigate to test case directory:
cd testCases
- Run with visualization:
CFLAGS=-DDISPLAY=-1 make jetOnPool.tst
- Run without visualization:
make jetOnPool.tst
qcc -O2 -Wall -disable-dimensions -I$(PWD)/src-local jetOnPool.c -o jetOnPool -lm
./jetOnPool
For cluster environments:
- Compile with MPI support:
CC99='mpicc -std=c99' qcc -Wall -O2 -D_MPI=1 -disable-dimensions jetOnPool.c -o jetOnPool -lm
- Run with MPI:
mpirun -np 4 ./jetOnPool
We welcome contributions! The project uses standardized issue templates to streamline communication and problem-solving. When contributing, please:
- Fork the repository
- Create a feature branch
- Submit a Pull Request
We provide three types of issue templates to help you contribute effectively:
-
Bug Reports (
bug_report.md
):- Detailed reproduction steps
- System information
- Simulation parameters
- Expected vs actual behavior
- Relevant outputs and visualizations
-
Feature Requests (
feature_request.md
):- Problem description
- Proposed solution
- Implementation details
- Impact assessment
- Relevant literature
-
Questions/Discussions (
question.md
):- Clear topic statement
- Context and background
- Related resources
- System information
- Supporting materials
For additional help and discussions:
- Basilisk Forum: For Basilisk-specific questions
- Viscoelastic3D Repository: For viscoelastic solver implementation
- Physics of Fluids Group: For academic collaborations
- Vatsal Sanjay (University of Twente)
- Email: [email protected]
- Physics of Fluids Group
This project is licensed under standard academic terms. Please cite the associated papers if you use this code in your research.
If you use this code in your research, please cite:
@software{BubblesOnString,
author = {Sanjay, V.},
title = {BubblesOnString: Viscoelastic Fluid Dynamics Simulation},
year = {2024},
publisher = {GitHub},
url = {https://github.com/comphy-lab/BubblesOnString}
}