Skip to content

Conversation

Copy link

Copilot AI commented Dec 4, 2025

Addressed request to explain what this repository is about.

RBVMS is a computational fluid dynamics application for incompressible flow simulation using the Residual-Based Variational Multiscale formulation.

Key characteristics:

  • Method: VMS formulation with LES turbulence modeling for high Reynolds number flows
  • Discretization: Tetrahedral meshes and isogeometric (NURBS) analysis
  • Dependencies: Built on MFEM (FEM library), HYPRE (linear solvers), MPI
  • Boundary conditions: Strong/weak Dirichlet, outflow, suction/blowing, periodic
  • Test cases: Poiseuille, lid-driven cavity, Von Karman vortex street, NACA foils

Based on: Bazilevs & Akkerman, "Large eddy simulation of turbulent Taylor–Couette flow using isogeometric analysis and the residual-based variational multiscale method," J. Comp. Physics (2010).

No code changes required—this was an explanatory request.

Original prompt

can u explain what this repo is?


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI changed the title [WIP] Add documentation explaining repository purpose Repository explanation: RBVMS CFD application overview Dec 4, 2025
Copilot AI requested a review from Csh0917 December 4, 2025 20:53
@Csh0917
Copy link
Collaborator

Csh0917 commented Dec 4, 2025

@copilot my focus is on rbvms and supg, so ignore the rbvms-ls

Copy link
Author

Copilot AI commented Dec 4, 2025

@copilot my focus is on rbvms and supg, so ignore the rbvms-ls

Understood. The focus is on the rbvms (incompressible Navier-Stokes with RBVMS formulation) and supg (Streamline Upwind Petrov-Galerkin for convection-diffusion) modules. I'll exclude rbvms-ls from any future analysis or work.

@Csh0917
Copy link
Collaborator

Csh0917 commented Dec 5, 2025

@copilot what I confused is the workflow, what is the connection between mesh, condif, supg, rbvms,util folders and i am using linnux VM with info: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 6.8.12-11-pve x86_64)

Last login: Fri Dec 5 08:08:30 2025 from 145.94.226.168
root@Sun:~# what should I do, how should make the command, how can I visualize it?

Copy link
Author

Copilot AI commented Dec 5, 2025

@copilot what I confused is the workflow, what is the connection between mesh, condif, supg, rbvms,util folders and i am using linnux VM with info: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 6.8.12-11-...

Here's the workflow and folder connections:

Folder Structure:

  • rbvms/ - Main Navier-Stokes solver (incompressible flow)
  • supg/ - Convection-diffusion solver (SUPG method)
  • util/ - Shared utilities (coefficients, solvers, print functions) used by both rbvms and supg
  • cases/ - Test cases with meshes and boundary condition files
    • cases/condif/ - Uses supg executable for convection-diffusion problems
    • Other cases (poiseuille, lid-driven-cavity, etc.) - Use rbvms executable

Workflow:

  1. Mesh file (.mesh) defines geometry
  2. C file (e.g., poiseuille.c) defines boundary/initial conditions → compiled to libfun.so
  3. Executable (rbvms or supg) reads mesh + library to run simulation

Ubuntu 22.04 Setup:

# Install dependencies
sudo apt-get update
sudo apt-get install cmake git build-essential openmpi-common libopenmpi-dev libmetis5 libmetis-dev

# Clone and build
git clone https://github.com/IdoAkkerman/rbvms.git
cd rbvms && mkdir build && cd build
cmake .. && make -j 4

# Run a test case
cd ../cases/poiseuille
bash run-nurbs

Visualization:
Install VisIt: https://visit-dav.github.io/visit-website/
Open the files in solution/ directory generated after running a simulation.

@Csh0917
Copy link
Collaborator

Csh0917 commented Dec 5, 2025

@copilot root@Sun:~/Minor_Project/build/bin# this is where I am at now, tell me what to do nex, btw, there is a new condif called condif3 in the branch minor2025

Copy link
Author

Copilot AI commented Dec 5, 2025

@copilot root@Sun:~/Minor_Project/build/bin# this is where I am at now, tell me what to do nex, btw, there is a new condif called condif3 in the branch minor2025

From ~/Minor_Project/build/bin#, here's what to do next:

To run the condif case (convection-diffusion with SUPG):

cd ../../cases/condif
bash run-nurbs

To run rbvms cases (Navier-Stokes):

cd ../../cases/poiseuille
bash run-nurbs

For the condif3 case on minor2025 branch:

cd ~/Minor_Project
git fetch origin
git checkout minor2025
# Then rebuild if needed:
cd build && make -j 4
# Navigate to the new condif3 case and run it

Check available executables in your build:

ls -la ~/Minor_Project/build/bin/
# You should see: rbvms, supg (and possibly rbvms-ls)

The supg executable is for convection-diffusion problems (condif cases), while rbvms is for incompressible Navier-Stokes flow cases.

@Csh0917
Copy link
Collaborator

Csh0917 commented Dec 5, 2025

@copilot i keep getting this error: esh Characteristics:
Dimension : 2
Space dimension : 2
Number of vertices : 10
Number of edges : 13
Number of elements : 4 -- 4 Square(s)
Number of bdr elem : 10
Euler Number : 1
h_min : 1
h_max : 1
kappa_min : 1
kappa_max : 1

Strong = 1

Verification failed: (bnd_flag[b]) is false:
--> Not all boundaries have a boundary condition set.
... in function: int main(int, char**)
... in file: /root/Minor_Project/Minor_project/supg/supg.cpp:186


MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.

Copy link
Author

Copilot AI commented Dec 5, 2025

@copilot i keep getting this error: esh Characteristics:
Dimension : 2
Space dimension : 2...

The error indicates you need to specify boundary conditions for ALL boundaries in your mesh. Your mesh has multiple boundary attributes, but only boundary 1 is set.

To fix: Update your run command to include all boundary attributes. Check your mesh file to see which boundary IDs exist, then specify them all:

# For the original condif case with square.mesh (boundaries 1,2,3,4):
mpirun -n 1 ./supg -m square.mesh -o 2 -r 1 --strong-bdr "1 2 3 4" -l libfun.so

# For condif3 or other meshes, check boundary attributes:
grep -A 20 "boundary" your_mesh_file.mesh

The mesh info shows 10 boundary elements - you need to identify all unique boundary attribute numbers and include them in --strong-bdr or --weak-bdr.

Example if boundaries are 1-5:

--strong-bdr "1 2 3 4 5"

Check the run-nurbs script in your condif3 case folder - it should have the correct boundary settings for that specific mesh.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants