CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > General Forums > Main CFD Forum

What am I misunderstanding about FVM?

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 12, 2024, 15:10
Default What am I misunderstanding about FVM?
  #1
New Member
 
martin
Join Date: Nov 2024
Posts: 4
Rep Power: 2
martinsshorts is on a distinguished road
I am trying to conceptually understand a 2D cell centered FVM on an unstructured grid of triangles. When I visualize in my head some of the things I am trying to code, I get stuck and I can't understand how they are supposed to work.

For the sake of clarity, I'll call the cell centered solution u, which is a vector.

The following things are difficult for me to visualize:

1. I am using a least-squares reconstruction method. As I understand it, that means I take the four points corresponding to the cell in question, and its three neighbors, and I do a least-squares method to find the a plane that serves as the linear reconstruction of my cell's values. Then I can use this to find the value of u at the midpoint of the edge of the cell that connects to a neighboring cell. I'll call this value uL. In the neighboring cell, I can do the same thing and calculate uR. Now that I have these two values, I can reduce the flux calculation to a 1D calculation across the interface. This is generally done by using an exact or approximate Riemann solver. Is this a correct way of thinking about this process?

2. I am solving an elastic wave equation, and I want to put an initial condition on the left side of the mesh of a non-zero x direction velocity, so that a wave propagates through the mesh from left to right. I don't understand how to implement this. should I implement it in the ghost points just outside of the left edge of the mesh that are used for boundary conditions? Or should it be an initial value in all the cells that touch the left edge? Should it be implemented as a boundary condition or an initial condition? Or do I need to create some sort of a wave transmitter in the actual mesh design, and give that an initial condition?

3. Speaking of boundary conditions. I want to implement an absorbing boundary condition so the wave can exit the domain without reflecting back. Since I'm using a least-squares reconstruction, can I implement an absorbing boundary condition with only one set of ghost points at the border? I cannot conceptualize how a wave could leave the domain if I'm only using one set of ghost points on the boundary. A PML makes more sense to me, but I'm at a loss as to how to implement that with a 2D elastic wave FVM.

Any help is greatly appreciated. I'm failing to grasp a few key concepts and it is making it hard for me to continue with my work. In theory I could probably play with the code and get it to work, but I need to actually understand exactly what is happening.

Thanks
martinsshorts is offline   Reply With Quote

Old   November 12, 2024, 16:03
Default
  #2
Senior Member
 
Filippo Maria Denaro
Join Date: Jul 2010
Posts: 6,896
Rep Power: 73
FMDenaro has a spectacular aura aboutFMDenaro has a spectacular aura aboutFMDenaro has a spectacular aura about
Quote:
Originally Posted by martinsshorts View Post
I am trying to conceptually understand a 2D cell centered FVM on an unstructured grid of triangles. When I visualize in my head some of the things I am trying to code, I get stuck and I can't understand how they are supposed to work.

For the sake of clarity, I'll call the cell centered solution u, which is a vector.

The following things are difficult for me to visualize:

1. I am using a least-squares reconstruction method. As I understand it, that means I take the four points corresponding to the cell in question, and its three neighbors, and I do a least-squares method to find the a plane that serves as the linear reconstruction of my cell's values. Then I can use this to find the value of u at the midpoint of the edge of the cell that connects to a neighboring cell. I'll call this value uL. In the neighboring cell, I can do the same thing and calculate uR. Now that I have these two values, I can reduce the flux calculation to a 1D calculation across the interface. This is generally done by using an exact or approximate Riemann solver. Is this a correct way of thinking about this process?

2. I am solving an elastic wave equation, and I want to put an initial condition on the left side of the mesh of a non-zero x direction velocity, so that a wave propagates through the mesh from left to right. I don't understand how to implement this. should I implement it in the ghost points just outside of the left edge of the mesh that are used for boundary conditions? Or should it be an initial value in all the cells that touch the left edge? Should it be implemented as a boundary condition or an initial condition? Or do I need to create some sort of a wave transmitter in the actual mesh design, and give that an initial condition?

3. Speaking of boundary conditions. I want to implement an absorbing boundary condition so the wave can exit the domain without reflecting back. Since I'm using a least-squares reconstruction, can I implement an absorbing boundary condition with only one set of ghost points at the border? I cannot conceptualize how a wave could leave the domain if I'm only using one set of ghost points on the boundary. A PML makes more sense to me, but I'm at a loss as to how to implement that with a 2D elastic wave FVM.

Any help is greatly appreciated. I'm failing to grasp a few key concepts and it is making it hard for me to continue with my work. In theory I could probably play with the code and get it to work, but I need to actually understand exactly what is happening.

Thanks



In general, any FVM is based on a flux reconstruction, Riemann solver being just one among several methods.

In your case, UL and UR are the constant cell averaged values, the two FV sharing the same face.
FMDenaro is offline   Reply With Quote

Old   November 12, 2024, 19:18
Default
  #3
New Member
 
martin
Join Date: Nov 2024
Posts: 4
Rep Power: 2
martinsshorts is on a distinguished road
Quote:
Originally Posted by FMDenaro View Post
In general, any FVM is based on a flux reconstruction, Riemann solver being just one among several methods.

In your case, UL and UR are the constant cell averaged values, the two FV sharing the same face.

Thanks for the reply. Perhaps I wasn't clear enough but I don't see how this addresses any of my questions. Could you maybe recommend a source to learn about FVM on an unstructured mesh?
martinsshorts is offline   Reply With Quote

Old   November 13, 2024, 04:33
Default
  #4
Senior Member
 
Filippo Maria Denaro
Join Date: Jul 2010
Posts: 6,896
Rep Power: 73
FMDenaro has a spectacular aura aboutFMDenaro has a spectacular aura aboutFMDenaro has a spectacular aura about
Quote:
Originally Posted by martinsshorts View Post
Thanks for the reply. Perhaps I wasn't clear enough but I don't see how this addresses any of my questions. Could you maybe recommend a source to learn about FVM on an unstructured mesh?
I suggest to read the textbooks of Blazek and Ferziger & al.
FMDenaro is offline   Reply With Quote

Old   November 13, 2024, 16:11
Default
  #5
Senior Member
 
sbaffini's Avatar
 
Paolo Lampitella
Join Date: Mar 2009
Location: Italy
Posts: 2,195
Blog Entries: 29
Rep Power: 39
sbaffini will become famous soon enoughsbaffini will become famous soon enough
Send a message via Skype™ to sbaffini
Quote:
Originally Posted by martinsshorts View Post
I am trying to conceptually understand a 2D cell centered FVM on an unstructured grid of triangles. When I visualize in my head some of the things I am trying to code, I get stuck and I can't understand how they are supposed to work.

For the sake of clarity, I'll call the cell centered solution u, which is a vector.

The following things are difficult for me to visualize:

1. I am using a least-squares reconstruction method. As I understand it, that means I take the four points corresponding to the cell in question, and its three neighbors, and I do a least-squares method to find the a plane that serves as the linear reconstruction of my cell's values. Then I can use this to find the value of u at the midpoint of the edge of the cell that connects to a neighboring cell. I'll call this value uL. In the neighboring cell, I can do the same thing and calculate uR. Now that I have these two values, I can reduce the flux calculation to a 1D calculation across the interface. This is generally done by using an exact or approximate Riemann solver. Is this a correct way of thinking about this process?

2. I am solving an elastic wave equation, and I want to put an initial condition on the left side of the mesh of a non-zero x direction velocity, so that a wave propagates through the mesh from left to right. I don't understand how to implement this. should I implement it in the ghost points just outside of the left edge of the mesh that are used for boundary conditions? Or should it be an initial value in all the cells that touch the left edge? Should it be implemented as a boundary condition or an initial condition? Or do I need to create some sort of a wave transmitter in the actual mesh design, and give that an initial condition?

3. Speaking of boundary conditions. I want to implement an absorbing boundary condition so the wave can exit the domain without reflecting back. Since I'm using a least-squares reconstruction, can I implement an absorbing boundary condition with only one set of ghost points at the border? I cannot conceptualize how a wave could leave the domain if I'm only using one set of ghost points on the boundary. A PML makes more sense to me, but I'm at a loss as to how to implement that with a 2D elastic wave FVM.

Any help is greatly appreciated. I'm failing to grasp a few key concepts and it is making it hard for me to continue with my work. In theory I could probably play with the code and get it to work, but I need to actually understand exactly what is happening.

Thanks
1) Yes

2) Not sure, only you know what you want to do (and this has nothing to do with FV, the same issue is present also for any analytical approach), but you probably need both. Certainly, an initial condition is needed in the cell centers of any computation. You also need to have boundary conditions that are compatible with your initial condition at your initial time.

3) This is not random, you either know what boundary condition you want to apply or you don't. Maybe there is a paper that has an implementation with 3 layers of ghost cells (not points), and one that has zero ghost cells. In general (thus this might not apply to any specific implementation), you just need uL and uR at the boundary faces in order to apply the flux there.
sbaffini is offline   Reply With Quote

Old   November 13, 2024, 16:25
Default
  #6
New Member
 
martin
Join Date: Nov 2024
Posts: 4
Rep Power: 2
martinsshorts is on a distinguished road
Quote:
Originally Posted by sbaffini View Post
1) Yes

2) Not sure, only you know what you want to do (and this has nothing to do with FV, the same issue is present also for any analytical approach), but you probably need both. Certainly, an initial condition is needed in the cell centers of any computation. You also need to have boundary conditions that are compatible with your initial condition at your initial time.

3) This is not random, you either know what boundary condition you want to apply or you don't. Maybe there is a paper that has an implementation with 3 layers of ghost cells (not points), and one that has zero ghost cells. In general (thus this might not apply to any specific implementation), you just need uL and uR at the boundary faces in order to apply the flux there.

Thank you. I appreciate this. Decision fatigue starts to set in when everything can be done in a million different ways. I'll keep grinding on.
martinsshorts is offline   Reply With Quote

Old   November 15, 2024, 06:24
Default
  #7
New Member
 
tonybenjamin
Join Date: May 2024
Posts: 2
Rep Power: 0
Matthew34 is on a distinguished road
Yes, using least-squares reconstruction to find the plane through your cell and its neighbors is correct; this lets you compute values at the midpoints for flux calculations using a Riemann solver. slice master
Matthew34 is offline   Reply With Quote

Reply

Tags
boundary conditions, conceptual, fvm, unstructured mesh, visualization


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Trying to understand FDM vs FVM vs Conservative form vs Non-conservative form granzer Main CFD Forum 5 December 4, 2019 04:00
Practical difference between FVM and LBM? pharg_yrartibra Main CFD Forum 2 November 25, 2013 11:52
FVM in 1-D spherical coordinates lost.identity Main CFD Forum 0 January 17, 2011 10:06
comments on FDM, FEM, FVM, SM, SEM, DSEM, BEM kenn Main CFD Forum 2 July 18, 2004 19:28
References for FVM Anthony Wachs Main CFD Forum 8 February 20, 2002 20:23


All times are GMT -4. The time now is 13:55.