|
[Sponsors] |
[mesh manipulation] Arbitrary Mesh Interface (AMI) algorithm/ implementation |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
March 17, 2021, 08:19 |
Arbitrary Mesh Interface (AMI) algorithm/ implementation
|
#1 |
New Member
Jeongbin Park
Join Date: Mar 2021
Location: USA
Posts: 3
Rep Power: 5 |
Hi everyone,
I'm writing this post because there is something I don't understand about actual implementation of the AMI method. I really want to know how exactly this method is implemented in the simulation. To my understanding, the AMI method connects disconnected regions by interpolating values at the face of shadow(or target) region using values at the face of master(or source) region. But as we store variables at cell centers, I wonder how we get the variable values at the cell faces of master region at each time step. In other words, how can we get the values at the faces of master region which are used for the interpolation? (I'm studying a propeller tutorial, so here the master region can be the rotating region, and the shadow region can be the static region) I really hope someone can let me understand the method. Thank you very much. |
|
March 17, 2021, 13:57 |
|
#2 |
Senior Member
Carlos Rubio Abujas
Join Date: Jan 2018
Location: Spain
Posts: 127
Rep Power: 9 |
Hi Jeongbin,
Forget for a second the AMI patch. Every face has one and only one cell assignated as owner, and may have one cell assignated as neighbour (in the case of an interior face) or not (in the case of a boundary face). For an interior face, this relation owner-neighbour creates an link between these two cells, so if you need to get the pressure in the face you can interpolate among these two values (using some scheme predefined) and get the value at the face center. The AMI boundary condition is amied to transform a boundary condition (a face without any neighbour) into an "interior" cell with one or more neighbour and define the rules to establish their relation. Typically it uses area weights to determine how much of which face goes to which one, but I cannot tell you the exact details of how it is implemented (you can try checking it in the source code). I hope that helps! Last edited by crubio.abujas; March 18, 2021 at 07:51. |
|
March 17, 2021, 15:04 |
|
#3 | |
New Member
Jeongbin Park
Join Date: Mar 2021
Location: USA
Posts: 3
Rep Power: 5 |
Quote:
First of all, thank you for your answer. If I understood correctly, what you are saying is that the AMI kinda couples two boundaries with an interpolation (using area weights or something) and treats them as an interior face. But I haven't solved my curiosity yet.. So.. values at an interior face is evaluated by a predefined interpolation method that uses two cell-centered values, so that we can set up a system of equations using FVM. So, I think we definitely need to know the values at each face. To set up a system of equations of a problem which contains the AMI boundary, how do we get the face values for using FVM? Is it just like.. the face values in one region is evaluated by weighted-sum of cell-centered values of intersecting cells in another region, and vice versa? If I didn't understand the concepts well, please let me know. Also, could you give me a hint on which part of the source code I should check? I checked the source code, but I couldn't find what I wanted to know.. Thanks again for your help! |
||
March 18, 2021, 05:26 |
|
#4 | ||
Senior Member
Carlos Rubio Abujas
Join Date: Jan 2018
Location: Spain
Posts: 127
Rep Power: 9 |
Hi again,
I've been looking cyclicAMIFvPatch, which is the patch that interconnect two regions, as well as cycicAMILduInterface which is the abstract class modelling the interaction. There are different method available such as faceAreaWeightAMI. It may be a little bit hard to understand something as the code has lines for parallel processing and a c++ inheritance entanglement that may be hard to follow. Quote:
Quote:
Each side of the AMI interface has a set of faces, so you need to do this interpolation once for each region. For the shadow, there is a face set owned by the shadow region where the neighbour is the source. On the opposite side, the source own other set of faces for whom the neighbour are the shadow faces. The key idea is that, in this stage, the value of the cell center is frozen. You use these cell values to obtain the face values so you can update the solver coefficients for the next iteration. Once you get the face value on each side the interaction is complete, you can continue to solve each region independently to update the cell values until the next iteration, where the process is repeated. |
|||
March 18, 2021, 14:18 |
|
#5 | |
New Member
Jeongbin Park
Join Date: Mar 2021
Location: USA
Posts: 3
Rep Power: 5 |
Quote:
Thank you very much for your clarification. This helps me a lot to better to understand the concept. And also thank you for the hint about the source code. I'll also check it by myself. Thank you again. I hope you have a good day! |
||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
sliding mesh problem in CFX | Saima | CFX | 46 | September 11, 2021 07:38 |
is it necessary to create a faceSet for Arbitrary Mesh Interface? | anon_q | OpenFOAM | 0 | July 18, 2019 10:56 |
Fluid Domain moving with Rigid body | Lloyd Sullivan | CFX | 3 | August 17, 2018 09:58 |
Drag and lift calculation in Arbitrary Mesh Interface simulation | anon_q | OpenFOAM | 7 | April 22, 2018 13:24 |
Compressor Simulation using rhoPimpleDyMFoam | Jetfire | OpenFOAM Running, Solving & CFD | 107 | December 9, 2014 13:38 |