From 094a2091b218f8da10e9884ec082165e7993f987 Mon Sep 17 00:00:00 2001 From: Vatsal Sanjay Date: Sat, 8 Mar 2025 11:59:06 +0100 Subject: [PATCH 1/8] feat(header): add dark mode styles for navigation The changes in this commit add dark mode styles for the site header navigation. This includes setting a darker background color and adjusting the hover styles to better suit the dark theme. fixes issue #20 --- assets/css/styles.css | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/assets/css/styles.css b/assets/css/styles.css index 1439b73..de5b224 100644 --- a/assets/css/styles.css +++ b/assets/css/styles.css @@ -1079,6 +1079,11 @@ h2::after { box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1); z-index: 100; } + + [data-theme="dark"] .s-header__nav { + background: rgba(30, 30, 35, 0.95); + box-shadow: -2px 0 10px rgba(0, 0, 0, 0.3); + } .s-header__nav.is-active { right: 0; @@ -1126,6 +1131,10 @@ h2::after { .s-header__nav-list a:hover { background: rgba(255, 255, 255, 0.35); } + + [data-theme="dark"] .s-header__nav-list a:hover { + background: rgba(60, 60, 70, 0.5); + } /* Special handling for Bluesky icon in mobile view */ .s-header__nav-list li[style="background: none;"] { From 69703fa38a8595752d9ecd4839a534576b07b710 Mon Sep 17 00:00:00 2001 From: Vatsal Sanjay Date: Sat, 8 Mar 2025 12:10:06 +0100 Subject: [PATCH 2/8] feat(css): Improve content responsiveness and layout This commit introduces several CSS changes to improve the responsiveness and layout of the website's content, particularly in the "About" section. The key changes include: - Ensuring all content elements have a maximum width of 100% and use box-sizing: border-box to prevent overflow on small screens. - Adding word-wrap and overflow-wrap properties to allow long words to break and wrap properly. - Adjusting the grid layout of the "About" section to be fully responsive on smaller screens. - Ensuring the body element has a width of 100% and is not overflowing on small screens. These changes aim to provide a better user experience by ensuring the website's content is contained within the viewport and displayed correctly on all screen sizes. --- assets/css/styles.css | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/assets/css/styles.css b/assets/css/styles.css index de5b224..91884f0 100644 --- a/assets/css/styles.css +++ b/assets/css/styles.css @@ -127,6 +127,32 @@ body { background-color: var(--color-background) !important; } +/* Ensure content is contained within viewport on all screens */ +.s-about, +.s-about__grid, +.s-about__left, +.s-about__desc, +.s-about__right, +.s-about__desc p, +.s-about__desc li, +.s-about__desc a, +.s-about__desc h1, +.s-about__desc h2, +.s-about__desc h3, +.s-about__desc strong, +.s-about__desc ul, +.s-research, +.s-research p, +.s-featured, +.s-featured p, +.s-teaching, +.s-teaching p { + max-width: 100%; + box-sizing: border-box; + overflow-wrap: break-word; + word-wrap: break-word; +} + /* Match About and News container styles in dark mode */ [data-theme="dark"] .s-about__grid { background: linear-gradient(145deg, rgba(35, 35, 45, 0.7), rgba(30, 30, 38, 0.8)) !important; @@ -891,6 +917,12 @@ h2::after { line-height: 1.8; max-width: 800px; margin: 0 auto; + overflow-wrap: break-word; + word-wrap: break-word; + word-break: break-word; + hyphens: auto; + width: 100%; + box-sizing: border-box; } .s-about__desc h1 { @@ -926,6 +958,9 @@ h2::after { .s-about__desc p { margin-bottom: 1.5rem; + max-width: 100%; + overflow-wrap: break-word; + word-wrap: break-word; } .s-about__desc ul { @@ -1059,6 +1094,12 @@ h2::after { } @media screen and (max-width: 768px) { + /* General mobile responsiveness improvements */ + body { + overflow-x: hidden; + width: 100%; + } + .s-header__menu-toggle { display: flex; z-index: 90; @@ -1163,10 +1204,16 @@ h2::after { .s-about__grid { grid-template-columns: 1fr; gap: 4rem; + width: 100%; + box-sizing: border-box; + overflow-x: hidden; + padding: 0 1rem; } .s-about__left { padding-right: 0; + width: 100%; + overflow-x: hidden; } .s-about__right { @@ -1306,6 +1353,8 @@ h2::after { .team-grid { grid-template-columns: 1fr; } + + .team-member { width: 100%; @@ -1806,6 +1855,8 @@ h2::after { .team-grid { grid-template-columns: 1fr; } + + .team-member { width: 100%; From cb40f28f57bc8b42a371560c0dece2949e385f3e Mon Sep 17 00:00:00 2001 From: Vatsal Sanjay Date: Sat, 8 Mar 2025 12:12:32 +0100 Subject: [PATCH 3/8] feat(responsive): Make YouTube stats card responsive The changes made in this commit are focused on making the YouTube stats card responsive. The max-width and height properties have been set to 100% and auto respectively to ensure the card scales properly on different screen sizes. Additionally, a media query has been added to further optimize the card's appearance on smaller screens, setting the width and height to 100% to ensure it fills the available space. --- assets/css/styles.css | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/assets/css/styles.css b/assets/css/styles.css index 91884f0..7c1850b 100644 --- a/assets/css/styles.css +++ b/assets/css/styles.css @@ -224,10 +224,14 @@ h2::after { /* YouTube stats card theme switching */ .youtube-stats-light { display: block; + max-width: 100%; + height: auto; } .youtube-stats-dark { display: none; + max-width: 100%; + height: auto; } [data-theme="dark"] .youtube-stats-light { @@ -238,6 +242,23 @@ h2::after { display: block; } +/* Make YouTube stats card responsive */ +img.youtube-stats-light, +img.youtube-stats-dark { + max-width: 100%; + height: auto; + box-sizing: border-box; +} + +@media screen and (max-width: 768px) { + img.youtube-stats-light, + img.youtube-stats-dark { + max-width: 100%; + height: auto !important; + width: 100% !important; + } +} + /* Fix box shadows and borders in dark mode */ [data-theme="dark"] .featured-paper, [data-theme="dark"] .s-about__grid { From 0b9a7aadd0d15ab2dd55ce5955a70cb7f8c07a88 Mon Sep 17 00:00:00 2001 From: Vatsal Sanjay Date: Sat, 8 Mar 2025 12:14:33 +0100 Subject: [PATCH 4/8] feat(favicon): update favicon assets The changes update the favicon assets in the `site.webmanifest` file. The new favicon assets include a 96x96 PNG, an SVG, and a 48x48 ICO file. These changes provide a more modern and versatile set of favicon assets for the application. --- assets/favicon/site.webmanifest | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/assets/favicon/site.webmanifest b/assets/favicon/site.webmanifest index e2f99dc..1f6b71c 100644 --- a/assets/favicon/site.webmanifest +++ b/assets/favicon/site.webmanifest @@ -3,14 +3,19 @@ "short_name": "CoMPhy", "icons": [ { - "src": "/assets/favicon/android-chrome-192x192.png", - "sizes": "192x192", + "src": "/assets/favicon/favicon-96x96.png", + "sizes": "96x96", "type": "image/png" }, { - "src": "/assets/favicon/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" + "src": "/assets/favicon/favicon.svg", + "sizes": "any", + "type": "image/svg+xml" + }, + { + "src": "/assets/favicon/favicon.ico", + "sizes": "48x48", + "type": "image/x-icon" } ], "theme_color": "#ffffff", From 287ab9a4ec36af7e2653dadd34388583dc6adf66 Mon Sep 17 00:00:00 2001 From: Vatsal Sanjay Date: Sat, 8 Mar 2025 12:24:13 +0100 Subject: [PATCH 5/8] feat: Add new hybrid course announcement in Madrid Adds a new section in the News.md file to announce a hybrid online+offline course on "High-Fidelity Simulations Using Basilisk C" to be held in Madrid, Spain from March 10-13, 2025. This course will provide hands-on coding sessions on computational fluid dynamics using the Basilisk C framework. --- News.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/News.md b/News.md index 1fccdfe..9089d3f 100644 --- a/News.md +++ b/News.md @@ -1,5 +1,9 @@ ## 2025 +### March + +- Join us for a hybrid online+offline course: [High-Fidelity Simulations Using Basilisk C](/teaching/2025-Basilisk101-Madrid) in Madrid, Spain (March 10-13). Learn some computational (colorful) fluid dynamics with hands-on coding sessions. + ### February - [Sanjay, V., Zhang, B., Lv, C., & Lohse, D. J. Fluid Mech., 1004, A6 (2025) selected as the cover article.](/research#14) @@ -46,4 +50,4 @@ ### May -Vatsal Sanjay awarded the KIVI Hoogendoorn Fluid Mechanics Award 2023 for his PhD thesis "Viscous Free-Surface Flows". The award ceremony will take place at the Burgers Symposium on 29–30 May 2024 in Lunteren. \ No newline at end of file +Vatsal Sanjay awarded the KIVI Hoogendoorn Fluid Mechanics Award 2023 for his PhD thesis "Viscous Free-Surface Flows". The award ceremony took place at the Burgers Symposium on 29–30 May 2024 in Lunteren. \ No newline at end of file From ae21c7cdcd82c2271d87d24a104b6c9dcf87e3b0 Mon Sep 17 00:00:00 2001 From: Vatsal Sanjay Date: Sat, 8 Mar 2025 12:30:03 +0100 Subject: [PATCH 6/8] feat(research): Improve content visibility and consistency across themes This commit introduces several improvements to the research section of the website: - Adds a consistent box-shadow and transition for the research content container - Improves bold text visibility across all themes by setting a higher font-weight - Adds consistent styling for blockquotes, including a theme-aware background color and border color - Ensures list item styling is consistent across themes - Adds a subtle hover effect for the paper containers in dark mode - Removes unnecessary theme-switching transitions to improve performance These changes aim to enhance the overall visual consistency and readability of the research section, providing a better user experience regardless of the chosen theme. --- assets/css/research.css | 75 +++++++++++++++++++++++++++++++---------- 1 file changed, 58 insertions(+), 17 deletions(-) diff --git a/assets/css/research.css b/assets/css/research.css index 1f7ab22..e4d8033 100644 --- a/assets/css/research.css +++ b/assets/css/research.css @@ -30,41 +30,66 @@ padding: 8rem 0 6rem 0; background-color: var(--research-bg-color); position: relative; + transition: background-color 0.1s linear; + box-shadow: none; } -/* Improve bold text visibility in dark mode */ +/* Improve bold text visibility across all modes */ +.research-content strong, +.research-content b { + font-weight: 700; + transition: none; +} + +/* Dark mode color changes only */ [data-theme="dark"] .research-content strong, [data-theme="dark"] .research-content b { color: #ffffff; - font-weight: 700; text-shadow: 0 0 1px rgba(255, 255, 255, 0.3); } -/* Add more solid background in dark mode */ +/* Add more solid background in dark mode - color only */ [data-theme="dark"] .s-research { background-color: #1E1E25; box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.3); } -/* Improve blockquote visibility in dark mode */ -[data-theme="dark"] .research-content blockquote { - background-color: #272736; - border-left: 4px solid #4d8dff; +/* Blockquote styling consistent across themes */ +.research-content blockquote { + background-color: var(--research-paper-bg); + border-left: 4px solid var(--research-subheading-color); padding: 1rem; margin: 1.5rem 0; - color: #ffffff; + color: var(--research-text-color); border-radius: 0 4px 4px 0; + transition: background-color 0.15s linear; } -/* Improve list item visibility in dark mode */ -[data-theme="dark"] .research-content ul, -[data-theme="dark"] .research-content ol { +/* Dark mode color changes only */ +[data-theme="dark"] .research-content blockquote { + background-color: #272736; + border-left-color: #4d8dff; color: #ffffff; } +/* List item styling consistent across themes */ +.research-content ul, +.research-content ol { + color: var(--research-text-color); + transition: none; +} + +.research-content li { + color: var(--research-text-color); + margin-bottom: 0.5rem; + transition: none; +} + +/* Dark mode color changes only */ +[data-theme="dark"] .research-content ul, +[data-theme="dark"] .research-content ol, [data-theme="dark"] .research-content li { color: #ffffff; - margin-bottom: 0.5rem; } @media screen and (max-width: 800px) { @@ -86,12 +111,17 @@ } /* Improve content visibility in dark mode */ -[data-theme="dark"] .research-content { - background-color: #272736; +.research-content { border-radius: 8px; padding: 2rem; - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); - border: 1px solid rgba(80, 80, 120, 0.2); + box-shadow: 0 4px 20px var(--research-shadow); + border: 1px solid transparent; + transition: background-color 0.15s linear; +} + +[data-theme="dark"] .research-content { + background-color: #272736; + border-color: rgba(80, 80, 120, 0.2); } @media screen and (max-width: 600px) { @@ -108,8 +138,10 @@ text-align: center; background: linear-gradient(45deg, #0085ff, var(--research-heading-color)); -webkit-background-clip: text; + background-clip: text; /* Standard property for compatibility */ -webkit-text-fill-color: transparent; animation: fadeIn 0.8s ease-out; + transition: none; } @media screen and (max-width: 600px) { @@ -164,12 +196,15 @@ padding: 1.5rem; margin: 2rem 0; border-radius: 8px; - transition: all 0.3s ease; + transition: transform 0.2s ease; + /* Only keep transform transition for hover effect, remove theme-switching transitions */ border: 1px solid transparent; background-color: transparent; scroll-margin-top: 120px; position: relative; color: var(--research-text-color); + /* Add consistent box-shadow with 0 opacity by default */ + box-shadow: 0 4px 12px rgba(0, 0, 0, 0); } .paper-container:hover { @@ -179,6 +214,12 @@ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); } +[data-theme="dark"] .paper-container:hover { + background-color: rgba(70, 140, 255, 0.1); + border-color: rgba(70, 140, 255, 0.2); + /* keep transform and box-shadow the same to avoid layout shifts */ +} + .paper-container h3 { margin-top: 0; } From 456a40f41e46d33bda34275848c9bf5ca803dd1b Mon Sep 17 00:00:00 2001 From: Vatsal Sanjay Date: Sat, 8 Mar 2025 12:55:05 +0100 Subject: [PATCH 7/8] docs(search-db): add build and development instructions, repository guidelines, and coding conventions This commit adds detailed instructions for building and developing the project, as well as guidelines for maintaining the repository and coding conventions to follow. The changes include: - Added a new section for "Build and Development Commands" with instructions for installing dependencies, building the site and search database, running the local server, fetching blog content, and generating the search database. - Added a new section for "Repository Guidelines" with instructions for updating the README, using the provided templates and CSS files, and keeping the documentation up-to-date. - Added a new section for "General" coding conventions, including indentation, DRY principles, commenting, and support for light and dark themes. - Added a new section for "HTML/Markdown" conventions, including the use of semantic HTML elements, BEM naming, and keeping content in Markdown format. - Added a new section for "CSS" conventions, including the use of CSS variables, responsive breakpoints, units, mobile-first approach, and dark theme implementation. --- assets/js/search_db.json | 2081 +++++++++++++++++++++++++++++++++++++- 1 file changed, 2080 insertions(+), 1 deletion(-) diff --git a/assets/js/search_db.json b/assets/js/search_db.json index 9255aeb..de5b3c3 100644 --- a/assets/js/search_db.json +++ b/assets/js/search_db.json @@ -307,6 +307,118 @@ "type": "team_member", "priority": 1 }, + { + "title": "Build and Development Commands", + "content": "- **Install dependencies:** `bundle install && cd scripts && npm install && cd ..`\n- **Build site and search database:** `./scripts/build.sh`\n- **Run local server:** `bundle exec jekyll serve` (don't run this automatically, user will do manually)\n- **Fetch blog content:** `cd scripts && npm run fetch-github && cd ..`\n- **Generate search database:** `ruby scripts/generate_search_db.rb`", + "url": "/#about", + "type": "markdown_section", + "priority": 3 + }, + { + "title": "Build and Development Commands", + "content": "- **Install dependencies:** `bundle install && cd scripts && npm install && cd ..`\n- **Build site and search database:** `./scripts/build.sh`\n- **Run local server:** `bundle exec jekyll serve` (don't run this automatically, user will do manually)\n- **Fetch blog content:** `cd scripts && npm run fetch-github && cd ..`\n- **Generate search database:** `ruby scripts/generate_search_db.rb`", + "url": "/#about", + "type": "markdown_text", + "priority": 3 + }, + { + "title": "Repository Guidelines", + "content": "- Refer to README.md to understand the codebase structure and organization\n- After adding or deleting files, update README.md accordingly\n- Keep README.md up-to-date whenever changes affect what's documented there\n- Templates are in _layouts/*.html with corresponding CSS files:\n - default.html uses styles.css in /assets/css\n - research.html uses research.css\n - team.html uses team.css\n - All layouts use styles.css as base styling", + "url": "/#about", + "type": "markdown_section", + "priority": 3 + }, + { + "title": "Repository Guidelines", + "content": "- Refer to README.md to understand the codebase structure and organization\n- After adding or deleting files, update README.md accordingly\n- Keep README.md up-to-date whenever changes affect what's documented there\n- Templates are in _layouts/*.html with corresponding CSS files:\n - default.html uses styles.css in /assets/css\n - research.html uses research.css\n - team.html uses team.css\n - All layouts use styles.css as base styling", + "url": "/#about", + "type": "markdown_text", + "priority": 3 + }, + { + "title": "General", + "content": "- Use 2-space indentation across all files\n- Follow DRY principles: reuse components, variables, and styles\n- Add comments for complex logic, but keep code self-documenting\n- Support both light and dark themes for all new features and changes\n - Test all UI changes in both themes before committing\n - Use CSS variables for theme-specific colors (defined in styles.css)", + "url": "/#about", + "type": "markdown_section", + "priority": 3 + }, + { + "title": "General", + "content": "- Use 2-space indentation across all files\n- Follow DRY principles: reuse components, variables, and styles\n- Add comments for complex logic, but keep code self-documenting\n- Support both light and dark themes for all new features and changes\n - Test all UI changes in both themes before committing\n - Use CSS variables for theme-specific colors (defined in styles.css)", + "url": "/#about", + "type": "markdown_text", + "priority": 3 + }, + { + "title": "HTML/Markdown", + "content": "- Use semantic HTML elements\n- Follow BEM naming convention for CSS classes (e.g., `s-header__nav-list`)\n- Keep content files in markdown format where possible", + "url": "/#about", + "type": "markdown_section", + "priority": 3 + }, + { + "title": "HTML/Markdown", + "content": "- Use semantic HTML elements\n- Follow BEM naming convention for CSS classes (e.g., `s-header__nav-list`)\n- Keep content files in markdown format where possible", + "url": "/#about", + "type": "markdown_text", + "priority": 3 + }, + { + "title": "CSS", + "content": "- Use CSS variables for colors and typography (defined in `:root`)\n- Use responsive breakpoints at 1700px, 1300px, 900px, 768px, 500px\n- Use `rem` units for font sizes and spacing\n- Follow mobile-first approach for media queries\n- Implement dark theme styles using the [data-theme=\"dark\"] selector\n- Theme colors are defined in styles.css and page-specific CSS files", + "url": "/#about", + "type": "markdown_section", + "priority": 3 + }, + { + "title": "CSS", + "content": "- Use CSS variables for colors and typography (defined in `:root`)\n- Use responsive breakpoints at 1700px, 1300px, 900px, 768px, 500px\n- Use `rem` units for font sizes and spacing\n- Follow mobile-first approach for media queries\n- Implement dark theme styles using the [data-theme=\"dark\"] selector\n- Theme colors are defined in styles.css and page-specific CSS files", + "url": "/#about", + "type": "markdown_text", + "priority": 3 + }, + { + "title": "JavaScript", + "content": "- Use ES6+ features (arrow functions, const/let, template literals)\n- Always include 'use strict' mode\n- Use async/await for asynchronous operations\n- Implement error handling with try/catch blocks\n- Use camelCase for variable and function names\n- Prefer event delegation for multiple similar elements", + "url": "/#about", + "type": "markdown_section", + "priority": 3 + }, + { + "title": "JavaScript", + "content": "- Use ES6+ features (arrow functions, const/let, template literals)\n- Always include 'use strict' mode\n- Use async/await for asynchronous operations\n- Implement error handling with try/catch blocks\n- Use camelCase for variable and function names\n- Prefer event delegation for multiple similar elements", + "url": "/#about", + "type": "markdown_text", + "priority": 3 + }, + { + "title": "Images", + "content": "- Optimize images for web (compress to reduce file size)\n- Follow naming convention: `[name]-[descriptor].[extension]`\n- Include alt text for all images", + "url": "/#about", + "type": "markdown_section", + "priority": 3 + }, + { + "title": "Images", + "content": "- Optimize images for web (compress to reduce file size)\n- Follow naming convention: `[name]-[descriptor].[extension]`\n- Include alt text for all images", + "url": "/#about", + "type": "markdown_text", + "priority": 3 + }, + { + "title": "March", + "content": "- Join us for a hybrid online+offline course: [High-Fidelity Simulations Using Basilisk C](/teaching/2025-Basilisk101-Madrid) in Madrid, Spain (March 10-13). Learn some computational (colorful) fluid dynamics with hands-on coding sessions.", + "url": "/#about", + "type": "markdown_section", + "priority": 3 + }, + { + "title": "March", + "content": "- Join us for a hybrid online+offline course: [High-Fidelity Simulations Using Basilisk C](/teaching/2025-Basilisk101-Madrid) in Madrid, Spain (March 10-13). Learn some computational (colorful) fluid dynamics with hands-on coding sessions.", + "url": "/#about", + "type": "markdown_text", + "priority": 3 + }, { "title": "February", "content": "- [Sanjay, V., Zhang, B., Lv, C., & Lohse, D. J. Fluid Mech., 1004, A6 (2025) selected as the cover article.](/research#14)\n\n \n\n- Milan Sent \n \n graduated with a bachelor's degree from University of Twente. Thesis: \n \n Spinning Pizza\n ", @@ -351,7 +463,7 @@ }, { "title": "May", - "content": "Vatsal Sanjay awarded the KIVI Hoogendoorn Fluid Mechanics Award 2023 for his PhD thesis \"Viscous Free-Surface Flows\". The award ceremony will take place at the Burgers Symposium on 29–30 May 2024 in Lunteren.", + "content": "Vatsal Sanjay awarded the KIVI Hoogendoorn Fluid Mechanics Award 2023 for his PhD thesis \"Viscous Free-Surface Flows\". The award ceremony took place at the Burgers Symposium on 29–30 May 2024 in Lunteren.", "url": "/#about", "type": "markdown_section", "priority": 3 @@ -685,6 +797,1973 @@ "type": "teaching_paragraph", "priority": 2 }, + { + "title": "404! But, there are no dragons either.", + "content": "Seems like you didn't find what you wanted. But don't worry - we've got plenty of exciting projects \n waiting for you to explore!\n Check Out:", + "url": "/404.html#404%2BBut%2Bthere%2Bare%2Bno%2Bdragons%2Beither", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "404! But, there are no dragons either.", + "content": "Take Me Home", + "url": "/404.html#404%2BBut%2Bthere%2Bare%2Bno%2Bdragons%2Beither", + "type": "text", + "links": [ + "" + ], + "priority": 3 + }, + { + "title": "404! But, there are no dragons either.", + "content": "© Copyright\n CoMPhy Lab 2025", + "url": "/404.html#404%2BBut%2Bthere%2Bare%2Bno%2Bdragons%2Beither", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "About", + "content": "If you are not redirected automatically, please click here.", + "url": "/about.html#About", + "type": "text", + "links": [ + "#about" + ], + "priority": 3 + }, + { + "title": "Contact", + "content": "Redirecting to Join Us page...", + "url": "/contact/index.html#Contact", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Contact", + "content": "If you are not redirected automatically, click here.", + "url": "/contact/index.html#Contact", + "type": "text", + "links": [ + "join" + ], + "priority": 3 + }, + { + "title": "Contact", + "content": "© Copyright\n CoMPhy Lab 2025", + "url": "/contact/index.html#Contact", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Contact", + "content": "Redirecting to Join Us page... If you are not redirected automatically, click here.", + "url": "/contact/index.html#Contact", + "type": "section", + "links": [ + "join" + ], + "priority": 3 + }, + { + "title": "Computational Multiphase \n Physics (CoMPhy) Lab", + "content": "Picture: Worthington jet formed due to bursting bubble.", + "url": "/index.html#Computational%2BMultiphase%2BPhysics%2BCoMPhy%2BLab", + "type": "text", + "links": [ + "research/#7" + ], + "priority": 3 + }, + { + "title": "Computational Multiphase \n Physics (CoMPhy) Lab", + "content": "Featured Research", + "url": "/index.html#Computational%2BMultiphase%2BPhysics%2BCoMPhy%2BLab", + "type": "text", + "links": [ + "#featured" + ], + "priority": 3 + }, + { + "title": "Featured Research", + "content": "© Copyright\n CoMPhy Lab 2025", + "url": "/index.html#Featured%2BResearch", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "PhD Positions", + "content": "We are always looking for enthusiastic PhD students interested in:", + "url": "/join/index.html#PhD%2BPositions", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "PhD Positions", + "content": "If you are interested, please send your:", + "url": "/join/index.html#PhD%2BPositions", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "PhD Positions", + "content": "to:", + "url": "/join/index.html#PhD%2BPositions", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Master's Projects", + "content": "We have several ongoing projects suitable for master's students. Current opportunities are listed at the project page.", + "url": "/join/index.html#Master%27s%2BProjects", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Master's Projects", + "content": "Contact us to discuss these or other potential projects.", + "url": "/join/index.html#Master%27s%2BProjects", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Master's Projects", + "content": "© Copyright\n CoMPhy Lab 2025", + "url": "/join/index.html#Master%27s%2BProjects", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "PhD Positions", + "content": "We are always looking for enthusiastic PhD students interested in: High-performance Computing\n Multiphase flows\n Physics-based modeling\n Soft singularities", + "url": "/join/index.html#PhD%2BPositions", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Master's Projects", + "content": "We have several ongoing projects suitable for master's students. Current opportunities are listed at the project page. Contact us to discuss these or other potential projects.", + "url": "/join/index.html#Master%27s%2BProjects", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Demirkır, Ç., Yang, R., Bashkatov, A., Sanjay, V., Lohse, D., & Krug, D. To jump or not to jump: Adhesion and viscous dissipation dictate the detachment of coalescing wall-attached bubbles. Submitted to Phys. Rev. Lett. (2025).", + "content": "", + "url": "/research/index.html#Demirkr%2BYang%2BR%2BBashkatov%2BA%2BSanjay%2BV%2BLohse%2BD%2BKrug%2BD%2BTo%2Bjump%2Bor%2Bnot%2Bto%2Bjump%3A%2BAdhesion%2Band%2Bviscous%2Bdissipation%2Bdictate%2Bthe%2Bdetachment%2Bof%2Bcoalescing%2Bwall-attached%2Bbubbles%2BSubmitted%2Bto%2BPhys%2BRev%2BLett%2B2025", + "type": "paper", + "tags": [ + "Bubbles", + "Coalescence" + ], + "priority": 3 + }, + { + "title": "Dixit, A. K., Oratis, A., Zinelis, K., Lohse, D., & Sanjay, V. Viscoelastic Worthington jets & droplets produced by bursting bubbles. Received positive reviews in J. Fluid Mech. (2025).", + "content": "", + "url": "/research/index.html#Dixit%2BA%2BK%2BOratis%2BA%2BZinelis%2BK%2BLohse%2BD%2BSanjay%2BV%2BViscoelastic%2BWorthington%2Bjets%2Bdroplets%2Bproduced%2Bby%2Bbursting%2Bbubbles%2BReceived%2Bpositive%2Breviews%2Bin%2BJ%2BFluid%2BMech%2B2025", + "type": "paper", + "tags": [ + "Bubbles", + "Non-Newtonian", + "Jets", + "Soft-matter-singularities", + "Drops" + ], + "priority": 3 + }, + { + "title": "Sanjay, V., & Lohse, D. Unifying theory of scaling in drop impact: Forces & maximum spreading diameter. Received positive reviews in Phys. Rev. Lett. (2025).", + "content": "", + "url": "/research/index.html#Sanjay%2BV%2BLohse%2BD%2BUnifying%2Btheory%2Bof%2Bscaling%2Bin%2Bdrop%2Bimpact%3A%2BForces%2Bmaximum%2Bspreading%2Bdiameter%2BReceived%2Bpositive%2Breviews%2Bin%2BPhys%2BRev%2BLett%2B2025", + "type": "paper", + "tags": [ + "Drops", + "Dissipative anamoly", + "Superamphiphobic-surfaces", + "Impact forces" + ], + "priority": 3 + }, + { + "title": "Bashkatov, A., Bürkle, F., Demirkır, Ç., Ding, W., Sanjay, V., Babich, A., Yang, X., Mutschke, G., Czarske, J., Lohse, D., et al. Electrolyte spraying within H₂ bubbles during water electrolysis. Received positive reviews in Nat. Commun. (2025).", + "content": "", + "url": "/research/index.html#Bashkatov%2BA%2BBrkle%2BF%2BDemirkr%2BDing%2BW%2BSanjay%2BV%2BBabich%2BA%2BYang%2BX%2BMutschke%2BG%2BCzarske%2BJ%2BLohse%2BD%2Bet%2Bal%2BElectrolyte%2Bspraying%2Bwithin%2BH%2Bbubbles%2Bduring%2Bwater%2Belectrolysis%2BReceived%2Bpositive%2Breviews%2Bin%2BNat%2BCommun%2B2025", + "type": "paper", + "tags": [ + "Bubbles", + "Jets", + "Coalescence", + "Soft-matter-singularities", + "Drops" + ], + "priority": 3 + }, + { + "title": "[14] Sanjay, V., Zhang, B., Lv, C., & Lohse, D. The role of viscosity on drop impact forces on non-wetting surfaces. J. Fluid Mech., 1004, A6 (2025).", + "content": "", + "url": "/research/index.html#14%2BSanjay%2BV%2BZhang%2BB%2BLv%2BC%2BLohse%2BD%2BThe%2Brole%2Bof%2Bviscosity%2Bon%2Bdrop%2Bimpact%2Bforces%2Bon%2Bnon-wetting%2Bsurfaces%2BJ%2BFluid%2BMech%2B1004%2BA6%2B2025", + "type": "paper", + "tags": [ + "Drops", + "Impact forces", + "Featured" + ], + "priority": 3 + }, + { + "title": "[13] Kayal, L., Sanjay, V., Yewale, N., Kumar, A., & Dasgupta, R. Focusing of concentric free-surface waves. J. Fluid Mech., 1003, A14 (2025).", + "content": "", + "url": "/research/index.html#13%2BKayal%2BL%2BSanjay%2BV%2BYewale%2BN%2BKumar%2BA%2BDasgupta%2BR%2BFocusing%2Bof%2Bconcentric%2Bfree-surface%2Bwaves%2BJ%2BFluid%2BMech%2B1003%2BA14%2B2025", + "type": "paper", + "tags": [ + "Waves", + "Dissipative anamoly" + ], + "priority": 3 + }, + { + "title": "[12] Balasubramanian, A. G., Sanjay, V., Jalaal, M., Vinuesa, R., & Tammisola, O. Bursting bubble in an elastoviscoplastic medium. J. Fluid Mech., 1001, A9 (2024).", + "content": "", + "url": "/research/index.html#12%2BBalasubramanian%2BA%2BG%2BSanjay%2BV%2BJalaal%2BM%2BVinuesa%2BR%2BTammisola%2BO%2BBursting%2Bbubble%2Bin%2Ban%2Belastoviscoplastic%2Bmedium%2BJ%2BFluid%2BMech%2B1001%2BA9%2B2024", + "type": "paper", + "tags": [ + "Bubbles", + "Non-Newtonian", + "Jets", + "Soft-matter-singularities", + "Featured" + ], + "priority": 3 + }, + { + "title": "[11] Sanjay, V., Chantelot, P., & Lohse, D. When does an impacting drop stop bouncing? J. Fluid Mech., 958, A26 (2023).", + "content": "", + "url": "/research/index.html#11%2BSanjay%2BV%2BChantelot%2BP%2BLohse%2BD%2BWhen%2Bdoes%2Ban%2Bimpacting%2Bdrop%2Bstop%2Bbouncing%2BJ%2BFluid%2BMech%2B958%2BA26%2B2023", + "type": "paper", + "tags": [ + "Drops", + "Bouncing", + "Dissipative anamoly" + ], + "priority": 3 + }, + { + "title": "[10] Sanjay, V., Lakshman, S., Chantelot, P., Snoeijer, J. H., & Lohse, D. Drop impact on viscous liquid films. J. Fluid Mech., 958, A25 (2023).", + "content": "", + "url": "/research/index.html#10%2BSanjay%2BV%2BLakshman%2BS%2BChantelot%2BP%2BSnoeijer%2BJ%2BH%2BLohse%2BD%2BDrop%2Bimpact%2Bon%2Bviscous%2Bliquid%2Bfilms%2BJ%2BFluid%2BMech%2B958%2BA25%2B2023", + "type": "paper", + "tags": [ + "Drops", + "Bouncing", + "Superhydrophobic surfaces" + ], + "priority": 3 + }, + { + "title": "➡️ Sanjay, V. Viscous free-surface flows. Ph.D. Thesis, Physics of Fluids, University of Twente (2022).", + "content": "", + "url": "/research/index.html#%2BSanjay%2BV%2BViscous%2Bfree-surface%2Bflows%2BPhD%2BThesis%2BPhysics%2Bof%2BFluids%2BUniversity%2Bof%2BTwente%2B2022", + "type": "paper", + "tags": [ + "Drops", + "Jets", + "Sheets", + "Bubbles", + "Soft-matter-singularities", + "Non-Newtonian" + ], + "priority": 3 + }, + { + "title": "[9] Sanjay, V. Taylor--Culick retractions and the influence of the surroundings. J. Fluid Mech., 948, A14 (2022).", + "content": "", + "url": "/research/index.html#9%2BSanjay%2BV%2BTaylor--Culick%2Bretractions%2Band%2Bthe%2Binfluence%2Bof%2Bthe%2Bsurroundings%2BJ%2BFluid%2BMech%2B948%2BA14%2B2022", + "type": "paper", + "tags": [ + "Sheets", + "Dissipative anamoly", + "Retraction" + ], + "priority": 3 + }, + { + "title": "[8] Zhang, B., Sanjay, V., Shi, S., and Zhao, Y., and Lv, C., and Feng, X.-Q., & Lohse, D. Impact forces of water drops falling on superhydrophobic surfaces. Phys. Rev. Lett., 129(10), 104501 (2022).", + "content": "", + "url": "/research/index.html#8%2BZhang%2BB%2BSanjay%2BV%2BShi%2BS%2Band%2BZhao%2BY%2Band%2BLv%2BC%2Band%2BFeng%2BX-Q%2BLohse%2BD%2BImpact%2Bforces%2Bof%2Bwater%2Bdrops%2Bfalling%2Bon%2Bsuperhydrophobic%2Bsurfaces%2BPhys%2BRev%2BLett%2B12910%2B104501%2B2022", + "type": "paper", + "tags": [ + "Drops", + "Superhydrophobic surfaces", + "Impact forces" + ], + "priority": 3 + }, + { + "title": "[7] Sanjay, V., Lohse, D., & Jalaal, M. Bursting bubble in a viscoplastic medium. J. Fluid Mech., 922, A2 (2021).", + "content": "", + "url": "/research/index.html#7%2BSanjay%2BV%2BLohse%2BD%2BJalaal%2BM%2BBursting%2Bbubble%2Bin%2Ba%2Bviscoplastic%2Bmedium%2BJ%2BFluid%2BMech%2B922%2BA2%2B2021", + "type": "paper", + "tags": [ + "Bubbles", + "Jets", + "Non-Newtonian", + "Soft-matter-singularities" + ], + "priority": 3 + }, + { + "title": "[6] Ramírez-Soto, O., Sanjay, V., Lohse, D., Pham, J. T., & Vollmer, D. Lifting a sessile oil drop from a superamphiphobic surface with an impacting one. Sci. Adv., 6(34), eaba4330 (2020).", + "content": "", + "url": "/research/index.html#6%2BRamrez-Soto%2BO%2BSanjay%2BV%2BLohse%2BD%2BPham%2BJ%2BT%2BVollmer%2BD%2BLifting%2Ba%2Bsessile%2Boil%2Bdrop%2Bfrom%2Ba%2Bsuperamphiphobic%2Bsurface%2Bwith%2Ban%2Bimpacting%2Bone%2BSci%2BAdv%2B634%2Beaba4330%2B2020", + "type": "paper", + "tags": [ + "Drops", + "Superamphiphobic-surfaces", + "Lifting" + ], + "priority": 3 + }, + { + "title": "[5] Jain, A., Sanjay, V., & Das, A. K. Consequences of inclined and dual jet impingement in stagnant liquid and stratified layers. AIChE J., 65(1), 372-384 (2019).", + "content": "", + "url": "/research/index.html#5%2BJain%2BA%2BSanjay%2BV%2BDas%2BA%2BK%2BConsequences%2Bof%2Binclined%2Band%2Bdual%2Bjet%2Bimpingement%2Bin%2Bstagnant%2Bliquid%2Band%2Bstratified%2Blayers%2BAIChE%2BJ%2B651%2B372-384%2B2019", + "type": "paper", + "tags": [ + "Jets", + "Bubbles" + ], + "priority": 3 + }, + { + "title": "[4] Soni, A., Sanjay, V., & Das, A. K. Formation of fluid structures due to jet-jet and jet-sheet interactions. Chem. Eng. Sci., 191, 67-77 (2018).", + "content": "", + "url": "/research/index.html#4%2BSoni%2BA%2BSanjay%2BV%2BDas%2BA%2BK%2BFormation%2Bof%2Bfluid%2Bstructures%2Bdue%2Bto%2Bjet-jet%2Band%2Bjet-sheet%2Binteractions%2BChem%2BEng%2BSci%2B191%2B67-77%2B2018", + "type": "paper", + "tags": [ + "Jets" + ], + "priority": 3 + }, + { + "title": "[3] Sanjay, V., Das, A.K. Numerical assessment of hazard in compartmental fire having steady heat release rate from the source. Build. Simul. 11, 613–624 (2018).", + "content": "", + "url": "/research/index.html#3%2BSanjay%2BV%2BDas%2BAK%2BNumerical%2Bassessment%2Bof%2Bhazard%2Bin%2Bcompartmental%2Bfire%2Bhaving%2Bsteady%2Bheat%2Brelease%2Brate%2Bfrom%2Bthe%2Bsource%2BBuild%2BSimul%2B11%2B613624%2B2018", + "type": "paper", + "tags": [ + "Others", + "Fire", + "Evacuation" + ], + "priority": 3 + }, + { + "title": "[2] Sanjay, V., & Das, A. K. Formation of liquid chain by collision of two laminar jets. Phys. Fluids, 29(11), 112101 (2017).", + "content": "", + "url": "/research/index.html#2%2BSanjay%2BV%2BDas%2BA%2BK%2BFormation%2Bof%2Bliquid%2Bchain%2Bby%2Bcollision%2Bof%2Btwo%2Blaminar%2Bjets%2BPhys%2BFluids%2B2911%2B112101%2B2017", + "type": "paper", + "tags": [ + "Jets", + "Sheets" + ], + "priority": 3 + }, + { + "title": "[1] Sanjay, V., & Das, A. K. On air entrainment in a water pool by impingement of a jet. AIChE J., 63(11), 5169-5181 (2017).", + "content": "", + "url": "/research/index.html#1%2BSanjay%2BV%2BDas%2BA%2BK%2BOn%2Bair%2Bentrainment%2Bin%2Ba%2Bwater%2Bpool%2Bby%2Bimpingement%2Bof%2Ba%2Bjet%2BAIChE%2BJ%2B6311%2B5169-5181%2B2017", + "type": "paper", + "tags": [ + "Jets", + "Bubbles" + ], + "priority": 3 + }, + { + "title": "Sort by topic", + "content": "Click on any tag to filter papers by topic. Each paper can have multiple tags.", + "url": "/research/index.html#Sort%2Bby%2Btopic", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "[1] Sanjay, V., & Das, A. K. On air entrainment in a water pool by impingement of a jet. AIChE J., 63(11), 5169-5181 (2017).", + "content": "© Copyright\n CoMPhy Lab 2025", + "url": "/research/index.html#1%2BSanjay%2BV%2BDas%2BA%2BK%2BOn%2Bair%2Bentrainment%2Bin%2Ba%2Bwater%2Bpool%2Bby%2Bimpingement%2Bof%2Ba%2Bjet%2BAIChE%2BJ%2B6311%2B5169-5181%2B2017", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Research", + "content": "Details ▼ Details ▼ Details ▼ Details ▼ Details ▼ Cover of that volume of J. Fluid Mech. As of March/April 2024, this highly cited paper received enough citations to place it in the top 1% of the academic field of Physics based on a highly cited threshold for the field and publication year. Source: Web of Science.\n Editor’s Suggestion of that issue of Phys. Rev. Lett.\n Research Highlight: Castelvecchi, D. The physics of a bouncing droplet’s impact. Nature, 609, 225 (2022).", + "url": "/research/index.html#Research", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Work in Progress", + "content": "Details ▼ Details ▼ Details ▼ Details ▼", + "url": "/research/index.html#Work%2Bin%2BProgress", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "2025", + "content": "Details ▼", + "url": "/research/index.html#2025", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "2024", + "content": "Cover of that volume of J. Fluid Mech.", + "url": "/research/index.html#2024", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "2022", + "content": "As of March/April 2024, this highly cited paper received enough citations to place it in the top 1% of the academic field of Physics based on a highly cited threshold for the field and publication year. Source: Web of Science.\n Editor’s Suggestion of that issue of Phys. Rev. Lett.\n Research Highlight: Castelvecchi, D. The physics of a bouncing droplet’s impact. Nature, 609, 225 (2022).", + "url": "/research/index.html#2022", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - Dates", + "content": "March 10-13, 2025", + "url": "/teaching/2025-Basilisk101-Madrid.html", + "type": "teaching_detail", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - Location", + "content": "Universidad Carlos III de Madrid, Spain", + "url": "/teaching/2025-Basilisk101-Madrid.html", + "type": "teaching_detail", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - Duration", + "content": "4 days, full-time", + "url": "/teaching/2025-Basilisk101-Madrid.html", + "type": "teaching_detail", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - Monday: Foundations", + "content": "Think before you compute 10:00-11:30  \n   Lecture (1a)\n \n \n \n \n Conservation laws and the numerical solution of the Navier–Stokes equations\n \n \n \n \n \n \n 11:45-13:00  \n   Lecture (1b)\n \n \n \n \n Advection-diffusion, diffusion-reaction, and other transport equations\n Brief intro to Basilisk coding framework First coding steps 15:00-18:00  \n   Hybrid Session\n \n \n \n \n Implementing basic transport equations in Basilisk C\n Whiteboard + coding", + "url": "/teaching/2025-Basilisk101-Madrid.html#Monday%3A%2BFoundations", + "type": "teaching_section", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - Tuesday: Advanced Implementation", + "content": "Coding like a pro 10:00-11:15  \n   Hackathon (1c)\n \n \n \n \n Using headers in Basilisk, modular code structure, problem setup, and compilation\n \n \n \n \n \n \n 11:30-13:00  \n   Hackathon Continued\n \n \n \n \n Expanding on the morning tasks and code debugging", + "url": "/teaching/2025-Basilisk101-Madrid.html#Tuesday%3A%2BAdvanced%2BImplementation", + "type": "teaching_section", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - Wednesday: Interface Dynamics", + "content": "Interface tracking methods 10:00-11:30  \n   Lecture (2a)\n \n \n \n \n Interface tracking methods (VoF, level set, phase-field approaches) and numerical strategies\n \n \n \n \n \n \n 11:45-13:00  \n   Hackathon (2b)\n \n \n \n \n Hands-on tutorial applying interface-tracking to a simple two-phase problem Seminar 13:30-14:00  \n   Department seminar (2c)\n \n \n \n \n A note on the thrust of airfoils by José Manuel Gordillo Non-Newtonian flows 15:00-16:00  \n   Lecture (3a)\n \n \n \n \n Non-Newtonian flows: viscoplasticity and viscoelasticity\n \n \n \n \n \n \n 16:15-18:00  \n   Hackathon (3b)\n \n \n \n \n Coding exercises for shear-thinning, viscoplastic, or viscoelastic fluids", + "url": "/teaching/2025-Basilisk101-Madrid.html#Wednesday%3A%2BInterface%2BDynamics", + "type": "teaching_section", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - Thursday: Special Topics", + "content": "Special topics 10:00-11:30  \n   Lecture (4a)\n \n \n \n \n Special Topics: multilayer solver, lubrication equation, Marangoni flows, manifold death, and research-oriented examples\n \n \n \n \n \n \n 11:45-13:00  \n   Hackathon (4b)\n \n \n \n \n Focused tutorials on the special topics introduced in the lecture\n \n \n \n \n \n \n 15:00-16:30  \n   Lecture (4c)\n \n \n \n \n Open discussion, deeper dives into advanced features, final code reviews, and next steps Prerequisites Basic knowledge of fluid mechanics\n Experience with programming (any language, C preferred)\n Understanding of partial differential equations\n Laptop with ability to compile C code Registration For registration details, please contact bubbles@ing.uc3m.es vatsalsy@comphy-lab.org function copyEmail(button) {\n const textToCopy = button.getAttribute('data-text');\n \n // Create a temporary textarea element to copy from\n const textarea = document.createElement('textarea');\n textarea.value = textToCopy;\n textarea.setAttribute('readonly', '');\n textarea.style.position = 'absolute';\n textarea.style.left = '-9999px';\n document.body.appendChild(textarea);\n \n // Select and copy the text\n textarea.select();\n document.execCommand('copy');\n \n // Remove the temporary element\n document.body.removeChild(textarea);\n \n // Show feedback\n const originalIcon = button.innerHTML;\n button.innerHTML = '';\n button.classList.add('copied');\n \n // Restore original state after a delay\n setTimeout(() => {\n button.innerHTML = originalIcon;\n button.classList.remove('copied');\n }, 2000);\n} Course GitHub Repository", + "url": "/teaching/2025-Basilisk101-Madrid.html#Thursday%3A%2BSpecial%2BTopics", + "type": "teaching_section", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - Prerequisites", + "content": "Basic knowledge of fluid mechanics\n Experience with programming (any language, C preferred)\n Understanding of partial differential equations\n Laptop with ability to compile C code", + "url": "/teaching/2025-Basilisk101-Madrid.html#Prerequisites", + "type": "teaching_course_info", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - Course Description", + "content": "This intensive 4-day course provides a comprehensive introduction to high-fidelity simulations using Basilisk C, a powerful computational framework for fluid dynamics. Participants will learn to implement and solve complex fluid mechanics problems with an emphasis on multiphase flows, interface dynamics, and non-Newtonian rheology. The course combines theoretical lectures with extensive hands-on sessions, allowing participants to immediately apply concepts through guided coding exercises. By the end of the course, you’ll be able to develop your own simulations for a variety of fluid dynamics applications.", + "url": "/teaching/2025-Basilisk101-Madrid.html#Course%2BDescription", + "type": "teaching_course_info", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - Registration", + "content": "For registration details, please contact bubbles@ing.uc3m.es vatsalsy@comphy-lab.org function copyEmail(button) {\n const textToCopy = button.getAttribute('data-text');\n \n // Create a temporary textarea element to copy from\n const textarea = document.createElement('textarea');\n textarea.value = textToCopy;\n textarea.setAttribute('readonly', '');\n textarea.style.position = 'absolute';\n textarea.style.left = '-9999px';\n document.body.appendChild(textarea);\n \n // Select and copy the text\n textarea.select();\n document.execCommand('copy');\n \n // Remove the temporary element\n document.body.removeChild(textarea);\n \n // Show feedback\n const originalIcon = button.innerHTML;\n button.innerHTML = '';\n button.classList.add('copied');\n \n // Restore original state after a delay\n setTimeout(() => {\n button.innerHTML = originalIcon;\n button.classList.remove('copied');\n }, 2000);\n} Course GitHub Repository", + "url": "/teaching/2025-Basilisk101-Madrid.html#Registration", + "type": "teaching_course_info", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C - CoMPhy Lab - What will you learn", + "content": "Think before you compute! Understanding the physics before implementation\n Writing the first code in Basilisk C Getting comfortable with the framework\n Solving conservation equations Numerical approaches to fluid dynamics\n Interface tracking methods Capturing multiphase phenomena accurately\n Non-Newtonian flows Modeling complex rheological behaviors", + "url": "/teaching/2025-Basilisk101-Madrid.html#What%2Bwill%2Byou%2Blearn", + "type": "teaching_course_info", + "priority": 2 + }, + { + "title": "Dates", + "content": "March 10-13, 2025", + "url": "/teaching/2025-Basilisk101-Madrid.html#Dates", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Location", + "content": "Universidad Carlos III de Madrid, Spain", + "url": "/teaching/2025-Basilisk101-Madrid.html#Location", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Duration", + "content": "4 days, full-time", + "url": "/teaching/2025-Basilisk101-Madrid.html#Duration", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Course Description", + "content": "This intensive 4-day course provides a comprehensive introduction to high-fidelity simulations using Basilisk C, a powerful computational framework for fluid dynamics. Participants will learn to implement and solve complex fluid mechanics problems with an emphasis on multiphase flows, interface dynamics, and non-Newtonian rheology.", + "url": "/teaching/2025-Basilisk101-Madrid.html#Course%2BDescription", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Course Description", + "content": "The course combines theoretical lectures with extensive hands-on sessions, allowing participants to immediately apply concepts through guided coding exercises. By the end of the course, you’ll be able to develop your own simulations for a variety of fluid dynamics applications.", + "url": "/teaching/2025-Basilisk101-Madrid.html#Course%2BDescription", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Registration", + "content": "For registration details, please contact", + "url": "/teaching/2025-Basilisk101-Madrid.html#Registration", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Registration", + "content": "© Copyright\n CoMPhy Lab 2025", + "url": "/teaching/2025-Basilisk101-Madrid.html#Registration", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C", + "content": "Think before you compute! Understanding the physics before implementation\n Writing the first code in Basilisk C Getting comfortable with the framework\n Solving conservation equations Numerical approaches to fluid dynamics\n Interface tracking methods Capturing multiphase phenomena accurately\n Non-Newtonian flows Modeling complex rheological behaviors This intensive 4-day course provides a comprehensive introduction to high-fidelity simulations using Basilisk C, a powerful computational framework for fluid dynamics. Participants will learn to implement and solve complex fluid mechanics problems with an emphasis on multiphase flows, interface dynamics, and non-Newtonian rheology. The course combines theoretical lectures with extensive hands-on sessions, allowing participants to immediately apply concepts through guided coding exercises. By the end of the course, you’ll be able to develop your own simulations for a variety of fluid dynamics applications. 10:00-11:30  \n   Lecture (1a)\n \n \n \n \n Conservation laws and the numerical solution of the Navier–Stokes equations\n \n \n \n \n \n \n 11:45-13:00  \n   Lecture (1b)\n \n \n \n \n Advection-diffusion, diffusion-reaction, and other transport equations\n Brief intro to Basilisk coding framework 15:00-18:00  \n   Hybrid Session\n \n \n \n \n Implementing basic transport equations in Basilisk C\n Whiteboard + coding 10:00-11:15  \n   Hackathon (1c)\n \n \n \n \n Using headers in Basilisk, modular code structure, problem setup, and compilation\n \n \n \n \n \n \n 11:30-13:00  \n   Hackathon Continued\n \n \n \n \n Expanding on the morning tasks and code debugging 10:00-11:30  \n   Lecture (2a)\n \n \n \n \n Interface tracking methods (VoF, level set, phase-field approaches) and numerical strategies\n \n \n \n \n \n \n 11:45-13:00  \n   Hackathon (2b)\n \n \n \n \n Hands-on tutorial applying interface-tracking to a simple two-phase problem 13:30-14:00  \n   Department seminar (2c)\n \n \n \n \n A note on the thrust of airfoils by José Manuel Gordillo 15:00-16:00  \n   Lecture (3a)\n \n \n \n \n Non-Newtonian flows: viscoplasticity and viscoelasticity\n \n \n \n \n \n \n 16:15-18:00  \n   Hackathon (3b)\n \n \n \n \n Coding exercises for shear-thinning, viscoplastic, or viscoelastic fluids 10:00-11:30  \n   Lecture (4a)\n \n \n \n \n Special Topics: multilayer solver, lubrication equation, Marangoni flows, manifold death, and research-oriented examples\n \n \n \n \n \n \n 11:45-13:00  \n   Hackathon (4b)\n \n \n \n \n Focused tutorials on the special topics introduced in the lecture\n \n \n \n \n \n \n 15:00-16:30  \n   Lecture (4c)\n \n \n \n \n Open discussion, deeper dives into advanced features, final code reviews, and next steps Basic knowledge of fluid mechanics\n Experience with programming (any language, C preferred)\n Understanding of partial differential equations\n Laptop with ability to compile C code For registration details, please contact", + "url": "/teaching/2025-Basilisk101-Madrid.html#High-Fidelity%2BSimulations%2BUsing%2BBasilisk%2BC", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "What will you learn?", + "content": "Think before you compute! Understanding the physics before implementation\n Writing the first code in Basilisk C Getting comfortable with the framework\n Solving conservation equations Numerical approaches to fluid dynamics\n Interface tracking methods Capturing multiphase phenomena accurately\n Non-Newtonian flows Modeling complex rheological behaviors", + "url": "/teaching/2025-Basilisk101-Madrid.html#What%2Bwill%2Byou%2Blearn", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Course Description", + "content": "This intensive 4-day course provides a comprehensive introduction to high-fidelity simulations using Basilisk C, a powerful computational framework for fluid dynamics. Participants will learn to implement and solve complex fluid mechanics problems with an emphasis on multiphase flows, interface dynamics, and non-Newtonian rheology. The course combines theoretical lectures with extensive hands-on sessions, allowing participants to immediately apply concepts through guided coding exercises. By the end of the course, you’ll be able to develop your own simulations for a variety of fluid dynamics applications.", + "url": "/teaching/2025-Basilisk101-Madrid.html#Course%2BDescription", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Course Schedule", + "content": "10:00-11:30  \n   Lecture (1a)\n \n \n \n \n Conservation laws and the numerical solution of the Navier–Stokes equations\n \n \n \n \n \n \n 11:45-13:00  \n   Lecture (1b)\n \n \n \n \n Advection-diffusion, diffusion-reaction, and other transport equations\n Brief intro to Basilisk coding framework 15:00-18:00  \n   Hybrid Session\n \n \n \n \n Implementing basic transport equations in Basilisk C\n Whiteboard + coding 10:00-11:15  \n   Hackathon (1c)\n \n \n \n \n Using headers in Basilisk, modular code structure, problem setup, and compilation\n \n \n \n \n \n \n 11:30-13:00  \n   Hackathon Continued\n \n \n \n \n Expanding on the morning tasks and code debugging 10:00-11:30  \n   Lecture (2a)\n \n \n \n \n Interface tracking methods (VoF, level set, phase-field approaches) and numerical strategies\n \n \n \n \n \n \n 11:45-13:00  \n   Hackathon (2b)\n \n \n \n \n Hands-on tutorial applying interface-tracking to a simple two-phase problem 13:30-14:00  \n   Department seminar (2c)\n \n \n \n \n A note on the thrust of airfoils by José Manuel Gordillo 15:00-16:00  \n   Lecture (3a)\n \n \n \n \n Non-Newtonian flows: viscoplasticity and viscoelasticity\n \n \n \n \n \n \n 16:15-18:00  \n   Hackathon (3b)\n \n \n \n \n Coding exercises for shear-thinning, viscoplastic, or viscoelastic fluids 10:00-11:30  \n   Lecture (4a)\n \n \n \n \n Special Topics: multilayer solver, lubrication equation, Marangoni flows, manifold death, and research-oriented examples\n \n \n \n \n \n \n 11:45-13:00  \n   Hackathon (4b)\n \n \n \n \n Focused tutorials on the special topics introduced in the lecture\n \n \n \n \n \n \n 15:00-16:30  \n   Lecture (4c)\n \n \n \n \n Open discussion, deeper dives into advanced features, final code reviews, and next steps", + "url": "/teaching/2025-Basilisk101-Madrid.html#Course%2BSchedule", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Monday: Foundations", + "content": "10:00-11:30  \n   Lecture (1a)\n \n \n \n \n Conservation laws and the numerical solution of the Navier–Stokes equations\n \n \n \n \n \n \n 11:45-13:00  \n   Lecture (1b)\n \n \n \n \n Advection-diffusion, diffusion-reaction, and other transport equations\n Brief intro to Basilisk coding framework 15:00-18:00  \n   Hybrid Session\n \n \n \n \n Implementing basic transport equations in Basilisk C\n Whiteboard + coding", + "url": "/teaching/2025-Basilisk101-Madrid.html#Monday%3A%2BFoundations", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Tuesday: Advanced Implementation", + "content": "10:00-11:15  \n   Hackathon (1c)\n \n \n \n \n Using headers in Basilisk, modular code structure, problem setup, and compilation\n \n \n \n \n \n \n 11:30-13:00  \n   Hackathon Continued\n \n \n \n \n Expanding on the morning tasks and code debugging", + "url": "/teaching/2025-Basilisk101-Madrid.html#Tuesday%3A%2BAdvanced%2BImplementation", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Wednesday: Interface Dynamics", + "content": "10:00-11:30  \n   Lecture (2a)\n \n \n \n \n Interface tracking methods (VoF, level set, phase-field approaches) and numerical strategies\n \n \n \n \n \n \n 11:45-13:00  \n   Hackathon (2b)\n \n \n \n \n Hands-on tutorial applying interface-tracking to a simple two-phase problem 13:30-14:00  \n   Department seminar (2c)\n \n \n \n \n A note on the thrust of airfoils by José Manuel Gordillo 15:00-16:00  \n   Lecture (3a)\n \n \n \n \n Non-Newtonian flows: viscoplasticity and viscoelasticity\n \n \n \n \n \n \n 16:15-18:00  \n   Hackathon (3b)\n \n \n \n \n Coding exercises for shear-thinning, viscoplastic, or viscoelastic fluids", + "url": "/teaching/2025-Basilisk101-Madrid.html#Wednesday%3A%2BInterface%2BDynamics", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Thursday: Special Topics", + "content": "10:00-11:30  \n   Lecture (4a)\n \n \n \n \n Special Topics: multilayer solver, lubrication equation, Marangoni flows, manifold death, and research-oriented examples\n \n \n \n \n \n \n 11:45-13:00  \n   Hackathon (4b)\n \n \n \n \n Focused tutorials on the special topics introduced in the lecture\n \n \n \n \n \n \n 15:00-16:30  \n   Lecture (4c)\n \n \n \n \n Open discussion, deeper dives into advanced features, final code reviews, and next steps", + "url": "/teaching/2025-Basilisk101-Madrid.html#Thursday%3A%2BSpecial%2BTopics", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Prerequisites", + "content": "Basic knowledge of fluid mechanics\n Experience with programming (any language, C preferred)\n Understanding of partial differential equations\n Laptop with ability to compile C code", + "url": "/teaching/2025-Basilisk101-Madrid.html#Prerequisites", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Registration", + "content": "For registration details, please contact", + "url": "/teaching/2025-Basilisk101-Madrid.html#Registration", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Teaching - CoMPhy Lab - High-Fidelity Simulations Using Basilisk C", + "content": "Universidad Carlos III de Madrid March 10-13, 2025 A comprehensive course on using Basilisk C for simulating multiphase flows, interface tracking, and solving conservation equations. Learn to tackle complex fluid dynamics problems with high-fidelity numerical methods. View Course", + "url": "/teaching/index.html#High-Fidelity%2BSimulations%2BUsing%2BBasilisk%2BC", + "type": "teaching_section", + "priority": 2 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C", + "content": "High-Fidelity Simulations Using Basilisk C - Universidad Carlos III de Madrid\n - \n March 10-13, 2025 - A comprehensive course on using Basilisk C for simulating multiphase flows, interface tracking, and solving conservation equations. Learn to tackle complex fluid dynamics problems with high-fidelity numerical methods.", + "url": "/teaching/2025-Basilisk101-Madrid", + "type": "teaching_course", + "priority": 2 + }, + { + "title": "Teaching", + "content": "Welcome to the CoMPhy Lab’s educational resources. Apart from the university courses, we aim to develop and offer a range of workshops and tutorials on modern computational methods for multiphase flows and high-fidelity simulations.", + "url": "/teaching/index.html#Teaching", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C", + "content": "A comprehensive course on using Basilisk C for simulating multiphase flows, interface tracking, and solving conservation equations. Learn to tackle complex fluid dynamics problems with high-fidelity numerical methods.", + "url": "/teaching/index.html#High-Fidelity%2BSimulations%2BUsing%2BBasilisk%2BC", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "About Our Teaching Philosophy", + "content": "At CoMPhy Lab, we believe in hands-on learning and deep understanding of computational methods. Our courses combine theoretical foundations with practical implementation, allowing students to develop both conceptual understanding and technical skills.", + "url": "/teaching/index.html#About%2BOur%2BTeaching%2BPhilosophy", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "About Our Teaching Philosophy", + "content": "Our teaching approach emphasizes:", + "url": "/teaching/index.html#About%2BOur%2BTeaching%2BPhilosophy", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "About Our Teaching Philosophy", + "content": "If you’re interested in hosting a course or workshop with CoMPhy Lab, please contact us for collaboration opportunities.", + "url": "/teaching/index.html#About%2BOur%2BTeaching%2BPhilosophy", + "type": "text", + "links": [ + "join" + ], + "priority": 3 + }, + { + "title": "About Our Teaching Philosophy", + "content": "© Copyright\n CoMPhy Lab 2025", + "url": "/teaching/index.html#About%2BOur%2BTeaching%2BPhilosophy", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Teaching", + "content": "Welcome to the CoMPhy Lab’s educational resources. Apart from the university courses, we aim to develop and offer a range of workshops and tutorials on modern computational methods for multiphase flows and high-fidelity simulations. At CoMPhy Lab, we believe in hands-on learning and deep understanding of computational methods. Our courses combine theoretical foundations with practical implementation, allowing students to develop both conceptual understanding and technical skills. Our teaching approach emphasizes: Think before you compute: Understanding the underlying physics before implementation\n Modular code structure: Building maintainable and extensible computational tools\n Advanced numerical methods: Mastering state-of-the-art techniques for complex problems\n Open science: Sharing knowledge and tools with the scientific community. Checkout If you’re interested in hosting a course or workshop with CoMPhy Lab, please contact us for collaboration opportunities.", + "url": "/teaching/index.html#Teaching", + "type": "section", + "links": [ + "teaching/2025-Basilisk101-Madrid", + "join" + ], + "priority": 3 + }, + { + "title": "High-Fidelity Simulations Using Basilisk C", + "content": "A comprehensive course on using Basilisk C for simulating multiphase flows, interface tracking, and solving conservation equations. Learn to tackle complex fluid dynamics problems with high-fidelity numerical methods.", + "url": "/teaching/index.html#High-Fidelity%2BSimulations%2BUsing%2BBasilisk%2BC", + "type": "section", + "links": [ + "teaching/2025-Basilisk101-Madrid" + ], + "priority": 3 + }, + { + "title": "About Our Teaching Philosophy", + "content": "At CoMPhy Lab, we believe in hands-on learning and deep understanding of computational methods. Our courses combine theoretical foundations with practical implementation, allowing students to develop both conceptual understanding and technical skills. Our teaching approach emphasizes: Think before you compute: Understanding the underlying physics before implementation\n Modular code structure: Building maintainable and extensible computational tools\n Advanced numerical methods: Mastering state-of-the-art techniques for complex problems\n Open science: Sharing knowledge and tools with the scientific community. Checkout If you’re interested in hosting a course or workshop with CoMPhy Lab, please contact us for collaboration opportunities.", + "url": "/teaching/index.html#About%2BOur%2BTeaching%2BPhilosophy", + "type": "section", + "links": [ + "teaching/2025-Basilisk101-Madrid", + "join" + ], + "priority": 3 + }, + { + "title": "Vatsal Sanjay (PI)", + "content": "Postdoc, Phys. Fluids - Univ. Twente / 2022-25\n Ph.D., Phys. Fluids - Univ. Twente / 2018-22\n B.Tech + M.Tech, Two-Phase Flow & Instability Lab, IIT-Roorkee / 2013-18\n Personal Website Research Interest: See here Download CV", + "url": "/team/index.html#Vatsal%2BSanjay%2BPI", + "type": "team_member", + "priority": 2 + }, + { + "title": "Ayush Dixit (Ph.D)", + "content": "Joint with Detlef Lohse Ph.D. Student, Phys. Fluids - Univ. Twente / 2023-now\n B.Tech + M.Tech, Two-Phase Flow & Instability Lab, IIT-Roorkee / 2018-23 Research Interest: Viscoelastic Flows, Bursting Bubbles, Respiratory Drops.", + "url": "/team/index.html#Ayush%2BDixit%2BPhD", + "type": "team_member", + "priority": 2 + }, + { + "title": "Aman Bhargava (Ph.D)", + "content": "Joint with Detlef Lohse Ph.D. Student, Phys. Fluids - Univ. Twente / 2024-now\n M.Sc. Chemical Engineering, Purdue University / 2022-23\n B.Tech. (Hons.) Chemical Engineering, IIT-Bombay / 2018-22 Research Interest: Inertial Contact Line, Drop Retraction.", + "url": "/team/index.html#Aman%2BBhargava%2BPhD", + "type": "team_member", + "priority": 2 + }, + { + "title": "Jnandeep Talukdar (M.Sc.)", + "content": "Joint with Detlef Lohse Ph.D. Student, Phys. Fluids - Univ. Twente / starting May 2025\n M.Sc. Student, Phys. Fluids - Univ. Twente / 2023-25\n B.Tech. Mechanical Engineering, IIT-Patna / 2019-23 Research Interest: Surfactant Dynamics, Dissipative Anomaly, Soft Wetting.", + "url": "/team/index.html#Jnandeep%2BTalukdar%2BMSc", + "type": "team_member", + "priority": 2 + }, + { + "title": "Saumili Jana (M.Sc.)", + "content": "Joint with Detlef Lohse Ph.D. Student, Phys. Fluids - Univ. Twente / starting Jul 2025\n B.Tech.+M.Tech. Student, IIT-Kharagpur / 2020-25\n Research Intern, Phys. Fluids - Univ. Twente / 2024 Research Interest: Soft Impact.", + "url": "/team/index.html#Saumili%2BJana%2BMSc", + "type": "team_member", + "priority": 2 + }, + { + "title": "Floris Hoek (M.Sc.)", + "content": "Joint with Martin van der Hoef and Alvaro Marin M.Sc. Student, Phys. Fluids - Univ. Twente / 2024 Research Interest: Molecular Dynamics Simulations of Evaporation-Driven Colloidal Self-Assembly.", + "url": "/team/index.html#Floris%2BHoek%2BMSc", + "type": "team_member", + "priority": 2 + }, + { + "title": "Xiangyu Zhang (Intern)", + "content": "Joint with Detlef Lohse Guest Researcher, Phys. Fluids - Univ. Twente / 2024\n City University of Hong Kong, China Research Interest: Viscoplastic Drop Impact.", + "url": "/team/index.html#Xiangyu%2BZhang%2BIntern", + "type": "team_member", + "priority": 2 + }, + { + "title": "Detlef Lohse", + "content": "Professor, Phys. Fluids - Univ. Twente Collaboration on: Drop Impact, Viscoelastic Flows, Dissipative Anomaly, Surfactant Dynamics, Electrolysis, Bubbles, and Everything in Between.", + "url": "/team/index.html#Detlef%2BLohse", + "type": "team_member", + "priority": 2 + }, + { + "title": "Jacco Snoeijer", + "content": "Professor, Phys. Fluids - Univ. Twente Collaboration on: Elastic Sheets, Viscoelasticity vs. Elasticity, Spinning Pizza.", + "url": "/team/index.html#Jacco%2BSnoeijer", + "type": "team_member", + "priority": 2 + }, + { + "title": "Dominik Krug", + "content": "Professor, RWTH Aachen University\n Adjunct Professor, Phys. Fluids - Univ. Twente Collaboration on: Electrolysis, Bubble Coalescence, Swimming Bubbles.", + "url": "/team/index.html#Dominik%2BKrug", + "type": "team_member", + "priority": 2 + }, + { + "title": "Maziyar Jalaal (Mazi)", + "content": "Associate Professor, Fluid Lab, Univ. Amsterdam Collaboration on: Plastocapillarity, Viscoplastic Flows.", + "url": "/team/index.html#Maziyar%2BJalaal%2BMazi", + "type": "team_member", + "priority": 2 + }, + { + "title": "Uddalok Sen (Udo)", + "content": "Assistant Professor, PhySM, Wageningen University and Research Collaboration on: Drop Impact, Sheet Retraction.", + "url": "/team/index.html#Uddalok%2BSen%2BUdo", + "type": "team_member", + "priority": 2 + }, + { + "title": "Alvaro Marin", + "content": "Adjunct Professor, Phys. Fluids - Univ. Twente Collaboration on: Colloidal Systems, Evaporation, Shell Formation.", + "url": "/team/index.html#Alvaro%2BMarin", + "type": "team_member", + "priority": 2 + }, + { + "title": "Christian Diddens", + "content": "Group Leader, Phys. Fluids - Univ. Twente\n Developer of pyoomph Collaboration on: Surfactant Dynamics in Free Surface Flows, Dissipative Anomaly, Sliding Drops.", + "url": "/team/index.html#Christian%2BDiddens", + "type": "team_member", + "priority": 2 + }, + { + "title": "Gareth McKinley", + "content": "Professor, MIT Collaboration on: Die-Swelling, Viscoelastic Flows.", + "url": "/team/index.html#Gareth%2BMcKinley", + "type": "team_member", + "priority": 2 + }, + { + "title": "John Kolinski", + "content": "Asst. Professor, EPFL (École Polytechnique Fédérale de Lausanne) Collaboration on: Soft Impact", + "url": "/team/index.html#John%2BKolinski", + "type": "team_member", + "priority": 2 + }, + { + "title": "C. Ricardo Constante-Amores", + "content": "Asst. Professor, Univ. Illinois Urbana-Champaign Collaboration on: Non-Newtonian Flows, Bubble Bursting, Herschel–Bulkley Fluids, Elastic Coating.", + "url": "/team/index.html#C%2BRicardo%2BConstante-Amores", + "type": "team_member", + "priority": 2 + }, + { + "title": "Radu Cimpeanu", + "content": "Assc. Professor, Univ. Warwick Collaboration on: Open-Source Code Development, Non-Coalescence Impacts.", + "url": "/team/index.html#Radu%2BCimpeanu", + "type": "team_member", + "priority": 2 + }, + { + "title": "Jie Feng", + "content": "Asst. Professor, Univ. Illinois Urbana-Champaign Collaboration on: Elastic Coating, Bursting Bubbles.", + "url": "/team/index.html#Jie%2BFeng", + "type": "team_member", + "priority": 2 + }, + { + "title": "Omar Matar", + "content": "Professor, Imperial College London Collaboration on: Surfactant Dynamics, Viscoelastic Drop Impact.", + "url": "/team/index.html#Omar%2BMatar", + "type": "team_member", + "priority": 2 + }, + { + "title": "Ratul Dasgupta", + "content": "Assc. Professor, IIT-Bombay Collaboration on: Waves, Dissipative Anomaly.", + "url": "/team/index.html#Ratul%2BDasgupta", + "type": "team_member", + "priority": 2 + }, + { + "title": "Eric Lauga", + "content": "Professor, Univ. Cambridge Collaboration on: Mycofluidic Transport.", + "url": "/team/index.html#Eric%2BLauga", + "type": "team_member", + "priority": 2 + }, + { + "title": "Saikat Datta", + "content": "Senior Lecturer, Swansea University Collaboration on: Multiscale Simulation, Ice Nucleation and Removal, Hydrogen Storage.", + "url": "/team/index.html#Saikat%2BDatta", + "type": "team_member", + "priority": 2 + }, + { + "title": "Doris Vollmer", + "content": "Apl. Professor, Max Planck Institute for Polymer Research, Mainz, Germany. Collaboration on: Contact Line, Drop Impact, Superhydrophobic Surfaces.", + "url": "/team/index.html#Doris%2BVollmer", + "type": "team_member", + "priority": 2 + }, + { + "title": "Stéphane Zaleski", + "content": "Professor, Sorbonne Universite Collaboration on: Holey Sheets.", + "url": "/team/index.html#Stphane%2BZaleski", + "type": "team_member", + "priority": 2 + }, + { + "title": "Pierre Chantelot", + "content": "Postdoc, Institut Langevin, ESPCI Paris Collaboration on: Drop Impact", + "url": "/team/index.html#Pierre%2BChantelot", + "type": "team_member", + "priority": 2 + }, + { + "title": "Aleksandr Bashkatov", + "content": "Postdoc, RWTH Aachen University Collaboration on: Electrolysis, Bubble Coalescence, Swimming Bubbles.", + "url": "/team/index.html#Aleksandr%2BBashkatov", + "type": "team_member", + "priority": 2 + }, + { + "title": "Vincent Bertin", + "content": "Postdoc, University Aix-Marseille Collaboration on: Elastic Sheets, Spinning Pizza.", + "url": "/team/index.html#Vincent%2BBertin", + "type": "team_member", + "priority": 2 + }, + { + "title": "Alexandros Oratis", + "content": "Postdoc, TU Delft Collaboration on: Electrolysis, Bubble Coalescence, Swimming Bubbles.", + "url": "/team/index.html#Alexandros%2BOratis", + "type": "team_member", + "priority": 2 + }, + { + "title": "Arivazhagan Balasubramanian (Ari)", + "content": "Ph.D. Student, KTH Sweden Collaboration on: Elastoviscoplastic Flows, Bursting Bubbles", + "url": "/team/index.html#Arivazhagan%2BBalasubramanian%2BAri", + "type": "team_member", + "priority": 2 + }, + { + "title": "Konstantinos Zinelis (Costis)", + "content": "Postdoc, MIT Collaboration on: Viscoelastic Flows, Drop Impact.", + "url": "/team/index.html#Konstantinos%2BZinelis%2BCostis", + "type": "team_member", + "priority": 2 + }, + { + "title": "Swen van den Heuvel", + "content": "Now: Ph.D. Student, Phys. Fluids - Univ. Twente\n 2023: Graduated with M.Sc., Univ. Twente\n Thesis: Hydrodynamic forces acting on vertically rising bubbles", + "url": "/team/index.html#Swen%2Bvan%2Bden%2BHeuvel", + "type": "team_member", + "priority": 2 + }, + { + "title": "Niels Kuipers", + "content": "Now: M.Sc. Student, Adv. Technology - Univ. Twente\n 2023: Graduated with B.Sc., Univ. Twente\n Thesis: Partial coalescence of drops on viscous films", + "url": "/team/index.html#Niels%2BKuipers", + "type": "team_member", + "priority": 2 + }, + { + "title": "Tom Appleford", + "content": "Now: Ph.D. Student, Fluid Lab - Univ. Amsterdam\n 2022: Graduated with M.Sc., Univ. Amsterdam\n Thesis: The deformation of a droplet in a viscoplastic simple shear flow", + "url": "/team/index.html#Tom%2BAppleford", + "type": "team_member", + "priority": 2 + }, + { + "title": "Coen Verschuur", + "content": "Now: Ph.D. Student, Phys. Fluids - Univ. Twente\n 2020: Graduated with B.Sc., Univ. Twente\n Thesis: Early time dynamics in immiscible drop impacts", + "url": "/team/index.html#Coen%2BVerschuur", + "type": "team_member", + "priority": 2 + }, + { + "title": "Pim J. Dekker", + "content": "Now: Ph.D. Student, Phys. Fluids - Univ. Twente\n 2019: Graduated with B.Sc., Univ. Twente\n Thesis: Spreading of a drop on a water-air interface", + "url": "/team/index.html#Pim%2BJ%2BDekker", + "type": "team_member", + "priority": 2 + }, + { + "title": "Vatsal Sanjay (PI)", + "content": "Research Interest: See here", + "url": "/team/index.html#Vatsal%2BSanjay%2BPI", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Vatsal Sanjay (PI)", + "content": "Download CV", + "url": "/team/index.html#Vatsal%2BSanjay%2BPI", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Ayush Dixit (Ph.D)", + "content": "Joint with Detlef Lohse", + "url": "/team/index.html#Ayush%2BDixit%2BPhD", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Ayush Dixit (Ph.D)", + "content": "Research Interest: Viscoelastic Flows, Bursting Bubbles, Respiratory Drops.", + "url": "/team/index.html#Ayush%2BDixit%2BPhD", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Aman Bhargava (Ph.D)", + "content": "Joint with Detlef Lohse", + "url": "/team/index.html#Aman%2BBhargava%2BPhD", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Aman Bhargava (Ph.D)", + "content": "Research Interest: Inertial Contact Line, Drop Retraction.", + "url": "/team/index.html#Aman%2BBhargava%2BPhD", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Jnandeep Talukdar (M.Sc.)", + "content": "Joint with Detlef Lohse", + "url": "/team/index.html#Jnandeep%2BTalukdar%2BMSc", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Jnandeep Talukdar (M.Sc.)", + "content": "Research Interest: Surfactant Dynamics, Dissipative Anomaly, Soft Wetting.", + "url": "/team/index.html#Jnandeep%2BTalukdar%2BMSc", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Saumili Jana (M.Sc.)", + "content": "Joint with Detlef Lohse", + "url": "/team/index.html#Saumili%2BJana%2BMSc", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Saumili Jana (M.Sc.)", + "content": "Research Interest: Soft Impact.", + "url": "/team/index.html#Saumili%2BJana%2BMSc", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Floris Hoek (M.Sc.)", + "content": "Joint with Martin van der Hoef and Alvaro Marin", + "url": "/team/index.html#Floris%2BHoek%2BMSc", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Floris Hoek (M.Sc.)", + "content": "Research Interest: Molecular Dynamics Simulations of Evaporation-Driven Colloidal Self-Assembly.", + "url": "/team/index.html#Floris%2BHoek%2BMSc", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Xiangyu Zhang (Intern)", + "content": "Joint with Detlef Lohse", + "url": "/team/index.html#Xiangyu%2BZhang%2BIntern", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Xiangyu Zhang (Intern)", + "content": "Research Interest: Viscoplastic Drop Impact.", + "url": "/team/index.html#Xiangyu%2BZhang%2BIntern", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "We need you!", + "content": "See: Join Us for ongoing projects.", + "url": "/team/index.html#We%2Bneed%2Byou", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Detlef Lohse", + "content": "Collaboration on: Drop Impact, Viscoelastic Flows, Dissipative Anomaly, Surfactant Dynamics, Electrolysis, Bubbles, and Everything in Between.", + "url": "/team/index.html#Detlef%2BLohse", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Jacco Snoeijer", + "content": "Collaboration on: Elastic Sheets, Viscoelasticity vs. Elasticity, Spinning Pizza.", + "url": "/team/index.html#Jacco%2BSnoeijer", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Dominik Krug", + "content": "Collaboration on: Electrolysis, Bubble Coalescence, Swimming Bubbles.", + "url": "/team/index.html#Dominik%2BKrug", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Maziyar Jalaal (Mazi)", + "content": "Collaboration on: Plastocapillarity, Viscoplastic Flows.", + "url": "/team/index.html#Maziyar%2BJalaal%2BMazi", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Uddalok Sen (Udo)", + "content": "Collaboration on: Drop Impact, Sheet Retraction.", + "url": "/team/index.html#Uddalok%2BSen%2BUdo", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Alvaro Marin", + "content": "Collaboration on: Colloidal Systems, Evaporation, Shell Formation.", + "url": "/team/index.html#Alvaro%2BMarin", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Christian Diddens", + "content": "Collaboration on: Surfactant Dynamics in Free Surface Flows, Dissipative Anomaly, Sliding Drops.", + "url": "/team/index.html#Christian%2BDiddens", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Gareth McKinley", + "content": "Collaboration on: Die-Swelling, Viscoelastic Flows.", + "url": "/team/index.html#Gareth%2BMcKinley", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "John Kolinski", + "content": "Collaboration on: Soft Impact", + "url": "/team/index.html#John%2BKolinski", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "C. Ricardo Constante-Amores", + "content": "Collaboration on: Non-Newtonian Flows, Bubble Bursting, Herschel–Bulkley Fluids, Elastic Coating.", + "url": "/team/index.html#C%2BRicardo%2BConstante-Amores", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Radu Cimpeanu", + "content": "Collaboration on: Open-Source Code Development, Non-Coalescence Impacts.", + "url": "/team/index.html#Radu%2BCimpeanu", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Jie Feng", + "content": "Collaboration on: Elastic Coating, Bursting Bubbles.", + "url": "/team/index.html#Jie%2BFeng", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Omar Matar", + "content": "Collaboration on: Surfactant Dynamics, Viscoelastic Drop Impact.", + "url": "/team/index.html#Omar%2BMatar", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Ratul Dasgupta", + "content": "Collaboration on: Waves, Dissipative Anomaly.", + "url": "/team/index.html#Ratul%2BDasgupta", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Eric Lauga", + "content": "Collaboration on: Mycofluidic Transport.", + "url": "/team/index.html#Eric%2BLauga", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Saikat Datta", + "content": "Collaboration on: Multiscale Simulation, Ice Nucleation and Removal, Hydrogen Storage.", + "url": "/team/index.html#Saikat%2BDatta", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Doris Vollmer", + "content": "Collaboration on: Contact Line, Drop Impact, Superhydrophobic Surfaces.", + "url": "/team/index.html#Doris%2BVollmer", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Stéphane Zaleski", + "content": "Collaboration on: Holey Sheets.", + "url": "/team/index.html#Stphane%2BZaleski", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Pierre Chantelot", + "content": "Collaboration on: Drop Impact", + "url": "/team/index.html#Pierre%2BChantelot", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Aleksandr Bashkatov", + "content": "Collaboration on: Electrolysis, Bubble Coalescence, Swimming Bubbles.", + "url": "/team/index.html#Aleksandr%2BBashkatov", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Vincent Bertin", + "content": "Collaboration on: Elastic Sheets, Spinning Pizza.", + "url": "/team/index.html#Vincent%2BBertin", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Alexandros Oratis", + "content": "Collaboration on: Electrolysis, Bubble Coalescence, Swimming Bubbles.", + "url": "/team/index.html#Alexandros%2BOratis", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Arivazhagan Balasubramanian (Ari)", + "content": "Collaboration on: Elastoviscoplastic Flows, Bursting Bubbles", + "url": "/team/index.html#Arivazhagan%2BBalasubramanian%2BAri", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Konstantinos Zinelis (Costis)", + "content": "Collaboration on: Viscoelastic Flows, Drop Impact.", + "url": "/team/index.html#Konstantinos%2BZinelis%2BCostis", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Team, collaborators, and Conference visits", + "content": "The locations marked on this map meet one of three criteria (in the order of preference): \n 1. Hometown of our team members (including alumni) in orange, \n 2. Base location of our collaborators in green,\n 3. Places where we have presented talks in purple, or\n 4. Places where we have visited for conferences (no talks) in gray.", + "url": "/team/index.html#Team%2Bcollaborators%2Band%2BConference%2Bvisits", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Team, collaborators, and Conference visits", + "content": "Loading map...", + "url": "/team/index.html#Team%2Bcollaborators%2Band%2BConference%2Bvisits", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Team, collaborators, and Conference visits", + "content": "© Copyright\n CoMPhy Lab 2025", + "url": "/team/index.html#Team%2Bcollaborators%2Band%2BConference%2Bvisits", + "type": "text", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Vatsal Sanjay (PI)", + "content": "Postdoc, Phys. Fluids - Univ. Twente / 2022-25\n Ph.D., Phys. Fluids - Univ. Twente / 2018-22\n B.Tech + M.Tech, Two-Phase Flow & Instability Lab, IIT-Roorkee / 2013-18\n Personal Website Research Interest: See here Download CV", + "url": "/team/index.html#Vatsal%2BSanjay%2BPI", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Ayush Dixit (Ph.D)", + "content": "Joint with Detlef Lohse Ph.D. Student, Phys. Fluids - Univ. Twente / 2023-now\n B.Tech + M.Tech, Two-Phase Flow & Instability Lab, IIT-Roorkee / 2018-23 Research Interest: Viscoelastic Flows, Bursting Bubbles, Respiratory Drops.", + "url": "/team/index.html#Ayush%2BDixit%2BPhD", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Aman Bhargava (Ph.D)", + "content": "Joint with Detlef Lohse Ph.D. Student, Phys. Fluids - Univ. Twente / 2024-now\n M.Sc. Chemical Engineering, Purdue University / 2022-23\n B.Tech. (Hons.) Chemical Engineering, IIT-Bombay / 2018-22 Research Interest: Inertial Contact Line, Drop Retraction.", + "url": "/team/index.html#Aman%2BBhargava%2BPhD", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Jnandeep Talukdar (M.Sc.)", + "content": "Joint with Detlef Lohse Ph.D. Student, Phys. Fluids - Univ. Twente / starting May 2025\n M.Sc. Student, Phys. Fluids - Univ. Twente / 2023-25\n B.Tech. Mechanical Engineering, IIT-Patna / 2019-23 Research Interest: Surfactant Dynamics, Dissipative Anomaly, Soft Wetting.", + "url": "/team/index.html#Jnandeep%2BTalukdar%2BMSc", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Saumili Jana (M.Sc.)", + "content": "Joint with Detlef Lohse Ph.D. Student, Phys. Fluids - Univ. Twente / starting Jul 2025\n B.Tech.+M.Tech. Student, IIT-Kharagpur / 2020-25\n Research Intern, Phys. Fluids - Univ. Twente / 2024 Research Interest: Soft Impact.", + "url": "/team/index.html#Saumili%2BJana%2BMSc", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Floris Hoek (M.Sc.)", + "content": "Joint with Martin van der Hoef and Alvaro Marin M.Sc. Student, Phys. Fluids - Univ. Twente / 2024 Research Interest: Molecular Dynamics Simulations of Evaporation-Driven Colloidal Self-Assembly.", + "url": "/team/index.html#Floris%2BHoek%2BMSc", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Xiangyu Zhang (Intern)", + "content": "Joint with Detlef Lohse Guest Researcher, Phys. Fluids - Univ. Twente / 2024\n City University of Hong Kong, China Research Interest: Viscoplastic Drop Impact.", + "url": "/team/index.html#Xiangyu%2BZhang%2BIntern", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "We need you!", + "content": "See: Join Us for ongoing projects.", + "url": "/team/index.html#We%2Bneed%2Byou", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Detlef Lohse", + "content": "Professor, Phys. Fluids - Univ. Twente Collaboration on: Drop Impact, Viscoelastic Flows, Dissipative Anomaly, Surfactant Dynamics, Electrolysis, Bubbles, and Everything in Between.", + "url": "/team/index.html#Detlef%2BLohse", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Jacco Snoeijer", + "content": "Professor, Phys. Fluids - Univ. Twente Collaboration on: Elastic Sheets, Viscoelasticity vs. Elasticity, Spinning Pizza.", + "url": "/team/index.html#Jacco%2BSnoeijer", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Dominik Krug", + "content": "Professor, RWTH Aachen University\n Adjunct Professor, Phys. Fluids - Univ. Twente Collaboration on: Electrolysis, Bubble Coalescence, Swimming Bubbles.", + "url": "/team/index.html#Dominik%2BKrug", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Maziyar Jalaal (Mazi)", + "content": "Associate Professor, Fluid Lab, Univ. Amsterdam Collaboration on: Plastocapillarity, Viscoplastic Flows.", + "url": "/team/index.html#Maziyar%2BJalaal%2BMazi", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Uddalok Sen (Udo)", + "content": "Assistant Professor, PhySM, Wageningen University and Research Collaboration on: Drop Impact, Sheet Retraction.", + "url": "/team/index.html#Uddalok%2BSen%2BUdo", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Alvaro Marin", + "content": "Adjunct Professor, Phys. Fluids - Univ. Twente Collaboration on: Colloidal Systems, Evaporation, Shell Formation.", + "url": "/team/index.html#Alvaro%2BMarin", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Christian Diddens", + "content": "Group Leader, Phys. Fluids - Univ. Twente\n Developer of pyoomph Collaboration on: Surfactant Dynamics in Free Surface Flows, Dissipative Anomaly, Sliding Drops.", + "url": "/team/index.html#Christian%2BDiddens", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Gareth McKinley", + "content": "Professor, MIT Collaboration on: Die-Swelling, Viscoelastic Flows.", + "url": "/team/index.html#Gareth%2BMcKinley", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "John Kolinski", + "content": "Asst. Professor, EPFL (École Polytechnique Fédérale de Lausanne) Collaboration on: Soft Impact", + "url": "/team/index.html#John%2BKolinski", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "C. Ricardo Constante-Amores", + "content": "Asst. Professor, Univ. Illinois Urbana-Champaign Collaboration on: Non-Newtonian Flows, Bubble Bursting, Herschel–Bulkley Fluids, Elastic Coating.", + "url": "/team/index.html#C%2BRicardo%2BConstante-Amores", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Radu Cimpeanu", + "content": "Assc. Professor, Univ. Warwick Collaboration on: Open-Source Code Development, Non-Coalescence Impacts.", + "url": "/team/index.html#Radu%2BCimpeanu", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Jie Feng", + "content": "Asst. Professor, Univ. Illinois Urbana-Champaign Collaboration on: Elastic Coating, Bursting Bubbles.", + "url": "/team/index.html#Jie%2BFeng", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Omar Matar", + "content": "Professor, Imperial College London Collaboration on: Surfactant Dynamics, Viscoelastic Drop Impact.", + "url": "/team/index.html#Omar%2BMatar", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Ratul Dasgupta", + "content": "Assc. Professor, IIT-Bombay Collaboration on: Waves, Dissipative Anomaly.", + "url": "/team/index.html#Ratul%2BDasgupta", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Eric Lauga", + "content": "Professor, Univ. Cambridge Collaboration on: Mycofluidic Transport.", + "url": "/team/index.html#Eric%2BLauga", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Saikat Datta", + "content": "Senior Lecturer, Swansea University Collaboration on: Multiscale Simulation, Ice Nucleation and Removal, Hydrogen Storage.", + "url": "/team/index.html#Saikat%2BDatta", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Doris Vollmer", + "content": "Apl. Professor, Max Planck Institute for Polymer Research, Mainz, Germany. Collaboration on: Contact Line, Drop Impact, Superhydrophobic Surfaces.", + "url": "/team/index.html#Doris%2BVollmer", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Stéphane Zaleski", + "content": "Professor, Sorbonne Universite Collaboration on: Holey Sheets.", + "url": "/team/index.html#Stphane%2BZaleski", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Pierre Chantelot", + "content": "Postdoc, Institut Langevin, ESPCI Paris Collaboration on: Drop Impact", + "url": "/team/index.html#Pierre%2BChantelot", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Aleksandr Bashkatov", + "content": "Postdoc, RWTH Aachen University Collaboration on: Electrolysis, Bubble Coalescence, Swimming Bubbles.", + "url": "/team/index.html#Aleksandr%2BBashkatov", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Vincent Bertin", + "content": "Postdoc, University Aix-Marseille Collaboration on: Elastic Sheets, Spinning Pizza.", + "url": "/team/index.html#Vincent%2BBertin", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Alexandros Oratis", + "content": "Postdoc, TU Delft Collaboration on: Electrolysis, Bubble Coalescence, Swimming Bubbles.", + "url": "/team/index.html#Alexandros%2BOratis", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Arivazhagan Balasubramanian (Ari)", + "content": "Ph.D. Student, KTH Sweden Collaboration on: Elastoviscoplastic Flows, Bursting Bubbles", + "url": "/team/index.html#Arivazhagan%2BBalasubramanian%2BAri", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Konstantinos Zinelis (Costis)", + "content": "Postdoc, MIT Collaboration on: Viscoelastic Flows, Drop Impact.", + "url": "/team/index.html#Konstantinos%2BZinelis%2BCostis", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Milan Sent", + "content": "2025: Graduated with B.Sc., Univ. Twente\n Thesis: Spinning Pizza", + "url": "/team/index.html#Milan%2BSent", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Valentin Rosario", + "content": "2024: Graduated with M.Sc., Univ. Amsterdam\n Thesis: Modelling the Ward–Hunt ice-shelf as viscoelastic solid", + "url": "/team/index.html#Valentin%2BRosario", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Swen van den Heuvel", + "content": "Now: Ph.D. Student, Phys. Fluids - Univ. Twente\n 2023: Graduated with M.Sc., Univ. Twente\n Thesis: Hydrodynamic forces acting on vertically rising bubbles", + "url": "/team/index.html#Swen%2Bvan%2Bden%2BHeuvel", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Niels Kuipers", + "content": "Now: M.Sc. Student, Adv. Technology - Univ. Twente\n 2023: Graduated with B.Sc., Univ. Twente\n Thesis: Partial coalescence of drops on viscous films", + "url": "/team/index.html#Niels%2BKuipers", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "C. H. (Luuk) Maurits", + "content": "2023: Graduated with M.Sc., Univ. Twente\n Thesis: When Laplace meets Marangoni", + "url": "/team/index.html#C%2BH%2BLuuk%2BMaurits", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Tom Appleford", + "content": "Now: Ph.D. Student, Fluid Lab - Univ. Amsterdam\n 2022: Graduated with M.Sc., Univ. Amsterdam\n Thesis: The deformation of a droplet in a viscoplastic simple shear flow", + "url": "/team/index.html#Tom%2BAppleford", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Twan Heijink", + "content": "Now: Software IVQA Engineer at Thales\n 2021: Graduated with B.Sc., Saxion Univ.\n Thesis: Standing waves at a fluid-fluid interface with plastocapillarity", + "url": "/team/index.html#Twan%2BHeijink", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Steven Meuleman", + "content": "Now: Mechanical Engineer at VIRO\n 2020: Graduated with B.Sc., Univ. Twente\n Thesis: Simulations of foam generation for a custom axisymmetric core-shell nozzle", + "url": "/team/index.html#Steven%2BMeuleman", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Thijmen Kroeze", + "content": "Now: CFD Engineer, Brink Climate Systems\n 2020: Graduated with B.Sc., Univ. Twente\n Thesis: Singular jet dynamics of drop impacts at high Bond numbers", + "url": "/team/index.html#Thijmen%2BKroeze", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Coen Verschuur", + "content": "Now: Ph.D. Student, Phys. Fluids - Univ. Twente\n 2020: Graduated with B.Sc., Univ. Twente\n Thesis: Early time dynamics in immiscible drop impacts", + "url": "/team/index.html#Coen%2BVerschuur", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Pim J. Dekker", + "content": "Now: Ph.D. Student, Phys. Fluids - Univ. Twente\n 2019: Graduated with B.Sc., Univ. Twente\n Thesis: Spreading of a drop on a water-air interface", + "url": "/team/index.html#Pim%2BJ%2BDekker", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Laurence Bruggink", + "content": "Now: Research Engineer at Alfen\n 2019: Graduated with B.Sc., Univ. Twente\n Thesis: Bursting bubble in a Herschel–Bulkley fluid", + "url": "/team/index.html#Laurence%2BBruggink", + "type": "section", + "links": [ + + ], + "priority": 3 + }, + { + "title": "Team, collaborators, and Conference visits", + "content": "The locations marked on this map meet one of three criteria (in the order of preference): \n 1. Hometown of our team members (including alumni) in orange, \n 2. Base location of our collaborators in green,\n 3. Places where we have presented talks in purple, or\n 4. Places where we have visited for conferences (no talks) in gray.", + "url": "/team/index.html#Team%2Bcollaborators%2Band%2BConference%2Bvisits", + "type": "section", + "links": [ + + ], + "priority": 3 + }, { "title": "0_README - Welcome to the CoMPhy Lab's documentation hub", "content": "Welcome to the CoMPhy Lab's documentation hub! We are based at the Physics of Fluids Department at the University of Twente, where we explore non-Newtonian free-surface flows and soft matter singularities.", From 38eea681f50473c3da739c00dc276216d7c4c2e3 Mon Sep 17 00:00:00 2001 From: Vatsal Sanjay Date: Sat, 8 Mar 2025 14:08:15 +0100 Subject: [PATCH 8/8] feat: Add tag filtering and clear filter functionality This commit introduces the following changes: 1. Adds a new CSS class `tag-link` to the tag elements in the research page layout. 2. Styles the filter notification section, including a link to clear the current filter. 3. Modifies the JavaScript code to handle the filter notification and clear the filter when the link is clicked. 4. Adds a new script `generate_filtered_research.rb` that generates pre-filtered research pages for each unique tag found on the main research page. 5. Updates the `build.sh` script to call the new `generate_filtered_research.rb` script and generate the pre-filtered research pages. These changes aim to improve the user experience by allowing visitors to filter the research content by tags and providing a clear way to remove the current filter. --- _layouts/research.html | 37 +++++++- assets/css/styles.css | 2 +- assets/js/search_db.json | 14 +-- scripts/build.sh | 4 + scripts/generate_filtered_research.rb | 123 ++++++++++++++++++++++++++ 5 files changed, 163 insertions(+), 17 deletions(-) create mode 100755 scripts/generate_filtered_research.rb diff --git a/_layouts/research.html b/_layouts/research.html index 3c9aaba..75f2189 100644 --- a/_layouts/research.html +++ b/_layouts/research.html @@ -52,7 +52,7 @@ margin-bottom: 0.5em; } /* Tag styling */ - tags span { + tags span, tags a.tag-link { display: inline-block; padding: 2px 8px; margin: 2px; @@ -60,14 +60,31 @@ background-color: #f0f0f0; cursor: pointer; transition: background-color 0.2s ease; + text-decoration: none; + color: inherit; } - tags span:hover { + tags span:hover, tags a.tag-link:hover { background-color: #e0e0e0; } - tags span.active { + tags span.active, tags a.tag-link.active { background-color: #007bff; color: white; } + /* Style for filter notification */ + .filter-note { + margin: 1rem 0; + padding: 0.5rem 1rem; + background-color: rgba(0,123,255,0.1); + border-radius: 4px; + } + .filter-note a { + margin-left: 0.5rem; + color: #007bff; + text-decoration: none; + } + .filter-note a:hover { + text-decoration: underline; + } .paper-container.hidden { display: none; } @@ -564,7 +581,7 @@

Contents

}); }; - // Add click handlers to tags + // Restore click handlers for client-side filtering allTags.forEach(tag => { tag.addEventListener('click', () => { const tagText = tag.textContent; @@ -600,6 +617,18 @@

Contents

}); }); + // Handle filter note if present (for pre-built pages) + const filterNote = document.querySelector('.filter-note'); + if (filterNote) { + const clearFilterLink = filterNote.querySelector('a'); + if (clearFilterLink) { + clearFilterLink.addEventListener('click', (e) => { + e.preventDefault(); + window.location.href = '/research/'; + }); + } + } + // Apply filter from URL if present if (tagFromUrl) { const matchingTag = Array.from(allTags).find(tag => tag.textContent === tagFromUrl); diff --git a/assets/css/styles.css b/assets/css/styles.css index 7c1850b..9365a0b 100644 --- a/assets/css/styles.css +++ b/assets/css/styles.css @@ -541,7 +541,7 @@ img.youtube-stats-dark { background-image: url('../../featured/GraphicalAbstract_v7_FrontOnly.jpg'); background-size: cover; background-position: center; - opacity: 0.65; + opacity: 0.75; z-index: -1; filter: brightness(0.9) contrast(1.1); backdrop-filter: blur(5px); diff --git a/assets/js/search_db.json b/assets/js/search_db.json index de5b3c3..a09c167 100644 --- a/assets/js/search_db.json +++ b/assets/js/search_db.json @@ -1241,7 +1241,7 @@ }, { "title": "Research", - "content": "Details ▼ Details ▼ Details ▼ Details ▼ Details ▼ Cover of that volume of J. Fluid Mech. As of March/April 2024, this highly cited paper received enough citations to place it in the top 1% of the academic field of Physics based on a highly cited threshold for the field and publication year. Source: Web of Science.\n Editor’s Suggestion of that issue of Phys. Rev. Lett.\n Research Highlight: Castelvecchi, D. The physics of a bouncing droplet’s impact. Nature, 609, 225 (2022).", + "content": "Cover of that volume of J. Fluid Mech. Cover of that volume of J. Fluid Mech. As of March/April 2024, this highly cited paper received enough citations to place it in the top 1% of the academic field of Physics based on a highly cited threshold for the field and publication year. Source: Web of Science.\n Editor’s Suggestion of that issue of Phys. Rev. Lett.\n Research Highlight: Castelvecchi, D. The physics of a bouncing droplet’s impact. Nature, 609, 225 (2022).", "url": "/research/index.html#Research", "type": "section", "links": [ @@ -1249,19 +1249,9 @@ ], "priority": 3 }, - { - "title": "Work in Progress", - "content": "Details ▼ Details ▼ Details ▼ Details ▼", - "url": "/research/index.html#Work%2Bin%2BProgress", - "type": "section", - "links": [ - - ], - "priority": 3 - }, { "title": "2025", - "content": "Details ▼", + "content": "Cover of that volume of J. Fluid Mech.", "url": "/research/index.html#2025", "type": "section", "links": [ diff --git a/scripts/build.sh b/scripts/build.sh index 9095420..51bb150 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -31,4 +31,8 @@ cd scripts bundle exec ruby generate_search_db.rb cd .. +# Generate pre-filtered research pages +echo "Generating pre-filtered research pages..." +bundle exec ruby scripts/generate_filtered_research.rb + echo "Build completed successfully!" diff --git a/scripts/generate_filtered_research.rb b/scripts/generate_filtered_research.rb new file mode 100755 index 0000000..ac83d0b --- /dev/null +++ b/scripts/generate_filtered_research.rb @@ -0,0 +1,123 @@ +#!/usr/bin/env ruby +require 'nokogiri' +require 'fileutils' + +# Path to the built research page +research_page_path = File.join(Dir.pwd, '_site', 'research', 'index.html') + +# Output directory for filtered pages +filtered_dir = File.join(Dir.pwd, '_site', 'research', 'tags') +FileUtils.mkdir_p(filtered_dir) + +# Read the research page +html = File.read(research_page_path) +doc = Nokogiri::HTML(html) + +# Find all unique tags +all_tags = [] +doc.css('tags span').each do |tag| + all_tags << tag.text unless all_tags.include?(tag.text) +end + +puts "Found #{all_tags.length} unique tags: #{all_tags.join(', ')}" + +# Create filtered pages for each tag +all_tags.each do |tag| + # Clone the document for this tag + tag_doc = Nokogiri::HTML(html) + + # Find all paper containers + paper_containers = tag_doc.css('.paper-container') + + # Hide paper containers that don't contain the current tag + paper_containers.each do |container| + container_tags = container.css('tags') + if container_tags.empty? || !container_tags.text.include?(tag) + container['class'] = "#{container['class']} hidden" + end + end + + # Highlight the current tag in the tag list and convert tags to links + tag_doc.css('tags span').each do |span| + tag_text = span.text + tag_slug = tag_text.downcase.gsub(/\s+/, '-') + + # Create a link element + link = tag_doc.create_element('a') + link['href'] = "/research/tags/#{tag_slug}.html" + + # Preserve existing classes + span_classes = span['class'] || "" + + # Add active class if this is the current tag + if tag_text == tag + span_classes = "#{span_classes} active".strip + end + + link['class'] = "#{span_classes} tag-link".strip + link.inner_html = span.inner_html + + # Replace the span with the link + span.replace(link) + end + + # Add a note about the active filter + filter_note = tag_doc.create_element('div') + filter_note['class'] = 'filter-note' + filter_note.inner_html = "

Currently filtered by tag: #{tag} Clear filter

" + + # Insert the filter note after the tag list section + tag_list_section = tag_doc.at_css('tags').parent + tag_list_section.add_next_sibling(filter_note) + + # Write the filtered page + output_path = File.join(filtered_dir, "#{tag.downcase.gsub(/\s+/, '-')}.html") + File.write(output_path, tag_doc.to_html) + puts "Created filtered page for tag '#{tag}' at #{output_path}" +end + +# Create a tag index page +index_html = <<~HTML + + + + + + + Research Tags + + +

Redirecting to research page...

+ + +HTML + +index_path = File.join(filtered_dir, 'index.html') +File.write(index_path, index_html) +puts "Created tags index page at #{index_path}" + +# Modify the original research page to link to the pre-filtered pages +original_doc = Nokogiri::HTML(html) +original_doc.css('tags span').each do |span| + tag_text = span.text + tag_slug = tag_text.downcase.gsub(/\s+/, '-') + + # Create a link element + link = original_doc.create_element('a') + link['href'] = "/research/tags/#{tag_slug}.html" + + # Preserve any existing classes and add tag-link + span_classes = span['class'] || "" + link['class'] = "#{span_classes} tag-link".strip + + link.inner_html = span.inner_html + + # Replace the span with the link + span.replace(link) +end + +# Write the modified original page +File.write(research_page_path, original_doc.to_html) +puts "Updated original research page with links to filtered pages" + +puts "Successfully generated all filtered research pages!" \ No newline at end of file